Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: Hijacking perl functions

by sweetblood (Prior)
on Jul 29, 2004 at 18:49 UTC ( [id://378461]=note: print w/replies, xml ) Need Help??


in reply to Re: Hijacking perl functions
in thread Hijacking perl functions

Very cool! But not what I'm doing. I have a script that does a chmod on a config file, but if the file is not owned by the user of my script it dies. So, I want to subvert chmod by having it create a new config from the old, replace the old with the new and chmod that file. So in the end the config file would be owned by the scripts user and have the proper perms. I know that this would require read permissions for my user, but in this case that is not an issue as I have control over the file.

Thanks!

Sweetblood

Replies are listed 'Best First'.
Re^3: Hijacking perl functions
by eric256 (Parson) on Jul 29, 2004 at 23:01 UTC

    I'm curious why you would want that to be the general case for every chmod call? Wouldn't that be better suited as config_chmod since it is so specialized?


    ___________
    Eric Hodges
      I'm sorry if you got the impression that I wanted to globally replace chmod, I don't, ony in this script. Though I can see where it could be useful in other scripts as well.

      Thanks

      Sweetblood

        In which case you probably don't want to be confusing things by replacing chmod. What you want to do is a completely separate operation and should be called something different.

        Otherwise you'll just confuse everybody. (Including yourself in 6 months time!)
Re^3: Hijacking perl functions
by Nitrox (Chaplain) on Jul 30, 2004 at 00:13 UTC
    If the user doesn't have the proper perms to chmod the old config how is the script going to relace the old one with the new one?

    -Nitrox

      Under *NIX file systems you need to have perms on the file to chmod it. To delete it (better: to unlink it), you merely need the right perms on the containing directory. To prevent users that have write-perms on a directory from deleting other users' files, you have to set the so-called sticky-bit on the directory.
Re^3: Hijacking perl functions
by danielcid (Scribe) on Jul 30, 2004 at 12:35 UTC

    You will need write permission to replace this file (not
    only read permission). If your user can't chmod, he will
    be unable to remove this file too...

    -DBC
      Not so! Deleting a file under *NIX merely removes a link to the file from the directory. Therefore write permission on the directory is sufficient. No permissions on the file itself are necessary for this, not even read perms, since the file itself is not changed, but only the link leading to it! Try it for yourself.
        I can't believe... I tested it here and you are right. I always tought that you needed permissions to the file to delete it. I think it is a big security problem anyway...

        bash-2.05b$ mkdir test bash-2.05b$ cd test bash-2.05b$ ls -la total 12 drwxr-xr-x 2 dcid devteam 4096 Aug 3 08:57 . drwxr-xr-x 65 dcid devteam 8192 Aug 3 08:57 .. bash-2.05b$ sudo touch file1 bash-2.05b$ ls -la total 12 drwxr-xr-x 2 dcid devteam 4096 Aug 3 08:58 . drwxr-xr-x 65 dcid devteam 8192 Aug 3 08:57 .. -rw-r--r-- 1 root root 0 Aug 3 08:58 file1 bash-2.05b$ rm file1 rm: remove write-protected regular empty file `file1'? y bash-2.05b$ ls bash-2.05b$ ls -la total 12 drwxr-xr-x 2 dcid devteam 4096 Aug 3 08:58 . drwxr-xr-x 65 dcid devteam 8192 Aug 3 08:57 .. bash-2.05b$ sudo mkdir dir1 bash-2.05b$ ls -la total 16 drwxr-xr-x 3 dcid devteam 4096 Aug 3 08:59 . drwxr-xr-x 65 dcid devteam 8192 Aug 3 08:57 .. drwxr-xr-x 2 root root 4096 Aug 3 08:59 dir1 bash-2.05b$ rmdir dir1 bash-2.05b$ ls bash-2.05b$ ls -la total 12 drwxr-xr-x 2 dcid devteam 4096 Aug 3 08:59 . drwxr-xr-x 65 dcid devteam 8192 Aug 3 08:57 ..

        *hum... this is why we need the sticky bit in the "tmp" dir.. I completely forgot about it.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://378461]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (2)
As of 2024-04-20 15:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found