ID: 46245 Updated by: j...@php.net Reported By: gabe at mudbugmedia dot com -Status: Analyzed +Status: Feedback Bug Type: Filesystem function related Operating System: Gentoo Linux 2.6.22-hardened-r8 PHP Version: 5.2.9 New Comment:
Can you try this: # CFLAGS=`getconf LFS_CFLAGS` ./config.nice # make clean && make This is from bug #45040 which I think this is kind of duplicate report now. :) Previous Comments: ------------------------------------------------------------------------ [2009-03-23 13:47:22] gabe at mudbugmedia dot com We are using UID mapping on this share (maps all users to the 'nobody' user), so it sounds like access(2) is definitely the root cause. If it's not feasible to work around access(2) for NFS paths, perhaps this should just be a documentation fix? ------------------------------------------------------------------------ [2009-03-21 23:36:43] j...@php.net Since is_writable() uses access(2) underneath, this might be the reason for the false positive: "access() may not work correctly on NFS file systems with UID mapping enabled, because UID mapping is done on the server and hidden from the client, which checks permissions." ------------------------------------------------------------------------ [2009-02-23 14:49:31] gabe at mudbugmedia dot com nightly build did not fix behavior. However, I want to clarify that this behavior is only occurring with directories, and not regular files. ------------------------------------------------------------------------ [2008-10-06 19:54:46] gabe at mudbugmedia dot com Description: ------------ When using is_writable() on a read-only file mounted over NFS, it incorrectly returns true. In our environment, the NFS server is running MacOSX Server 10.5 mounted with the following fstab options: 10.10.10.10:/Volumes/Sack /sack nfs rw,rsize=32768,soft,intr,tcp,nosuid 0 1 Reproduce code: --------------- gabe...@proto /tmp $ ls -ld /sack/test dr-xr-xr-x 2 joshbug mudbug 68 Oct 6 14:45 /sack/test/ gabe...@proto /tmp $ ls -ld /tmp/test dr-xr-xr-x 2 joshbug mudbug 4096 Oct 6 14:44 /tmp/test/ gabe...@proto /tmp $ cat is_writable_test.php <?php var_dump( is_writable('/sack/test'), // /sack is the NFS mount is_writable('/tmp/test') ); gabe...@proto /tmp $ php -f is_writable_test.php Expected result: ---------------- bool(false) bool(false) Actual result: -------------- bool(true) bool(false) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46245&edit=1