I'm trying to figure out if a file is readable, so I do something like:dan@dbdb$ ls -l somefile.png -r-------- 1 dboger 3813 2008-06-05 16:46 somefile.png
That is correct - the file is owned by a different UID, and is set to 0400. Now, I try the same thing as root:dan@dbdb$ perl -le 'print "lies" if -r shift' somefile.png dan@dbdb$
Is perl just assuming that if I'm root I can always read the file, even though the permissions say that's wrong? The perldoc page for -r says:dan@dbdb$ sudo perl -le 'print "lies" if -r shift' somefile.png lies dan@dbdb$ sudo file somefile.png couldn't open file somefile.png: regular file, no read permission
Also note that, for the superuser on the local filesystems, the "-r", "-R", "-w", and "-W" tests always return 1, and "-x" and "-X" return 1 if any execute bit is set in the mode. Scripts run by the superuser may thus need to do a stat() to determine the actual mode of the file, or temporarily set their effective uid to something else.But surely NFS doesn't count as a local filesystem? What am I missing?
-- zigdon
In reply to -r broken on root_squash NFS? by zigdon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |