I believe this is *only* on an NFS filesystem with root_squash. I guess it counts as a local-filesystem according to the manpage:<br><br> Also note that, for the superuser on the local filesystems, the "-r", "-R", "-w", and<br>
"-W" tests always return 1, and "-x" and "-X" return 1 if any execute bit is set in the<br> mode. Scripts run by the superuser may thus need to do a stat() to determine the<br>
actual mode of the file, or temporarily set their effective uid to something else.<br><br>Dan<br><br><div class="gmail_quote">On Fri, Jun 6, 2008 at 1:14 PM, frosty <<a href="mailto:biztos@mac.com">biztos@mac.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">My first suspicion was that something funny is going on with either the NFS or the "file" command, most likely the former.<br>
<br>
I just checked and on a local filesystem it's consistent, at least in my world (Perl 5.8.6 on RHEL 4.5 i386).<br>
<br>
user@localhost ~ $ ls -l somefile<br>
-r-------- 1 postgres postgres 4 May 27 17:46 somefile<br>
user@localhost ~ $ sudo perl -le 'print "lies" if -r shift' somefile<br>
lies<br>
user@localhost ~ $ sudo file somefile<br>
somefile: ASCII text<br>
user@localhost ~ $ file somefile<br>
somefile: regular file, no read permission<br>
user@localhost ~ $ cat somefile<br>
cat: somefile: Permission denied<br>
user@localhost ~ $ sudo cat somefile<br>
yep<br>
user@localhost ~ $<br>
<font color="#888888"><br>
-- f.<br>
</font><div><div></div><div class="Wj3C7c"><br>
On Friday, June 06, 2008, at 01:04PM, "Dan Boger" <<a href="mailto:dan@peeron.com">dan@peeron.com</a>> wrote:<br>
>I'm a little bit confused here, maybe one of you guys can spot what I'm<br>
>missing.<br>
><br>
>I have some files on an NFS filesystem, that is set to root_squash. The<br>
>file is owned by my network id (dboger), while I'm logged in locally as dan:<br>
><br>
>dan@dbdb$ ls -l somefile.png<br>
>-r-------- 1 dboger 3813 2008-06-05 16:46 somefile.png<br>
><br>
>I'm trying to figure out if a file is readable, so I do something like:<br>
><br>
>dan@dbdb$ perl -le 'print "lies" if -r shift' somefile.png<br>
>dan@dbdb$<br>
><br>
>That is correct - the file is owned by a different UID, and is set to 0400.<br>
><br>
>Now, I try the same thing as root:<br>
><br>
>dan@dbdb$ sudo perl -le 'print "lies" if -r shift' somefile.png<br>
>lies<br>
>dan@dbdb$ sudo file somefile.png<br>
>couldn't open file<br>
>somefile.png: regular file, no read permission<br>
><br>
>Is perl just assuming that if I'm root I can always read the file, even<br>
>though the permissions say that's wrong?<br>
><br>
>What am I missing?<br>
><br>
>Dan<br>
><br>
>--<br>
>Dan Boger<br>
><br>
</div></div><div><div></div><div class="Wj3C7c">_______________________________________________<br>
SanFrancisco-pm mailing list<br>
<a href="mailto:SanFrancisco-pm@pm.org">SanFrancisco-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/sanfrancisco-pm" target="_blank">http://mail.pm.org/mailman/listinfo/sanfrancisco-pm</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Dan Boger