#26224 [Fbk->Opn]: fileperms() inaccurately reports permissions
| From: | justin dot white at mci dot com | Date: | Thu, 13 Nov 2003 16:17:50 +0000 |
| Subject: | #26224 [Fbk->Opn]: fileperms() inaccurately reports permissions | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-50339@lists.php.net to get a copy of this message | ||
ID: 26224
User updated by: justin dot white at mci dot com
Reported By: justin dot white at mci dot com
-Status: Feedback
+Status: Open
Bug Type: Filesystem function related
Operating System: Windows 2000
PHP Version: 4.3.3
New Comment:
I think if you had read my post that you would have known that I
understood what attributes DOS offered. However, we're not talking
about DOS here.
In Windows NT/2000/XP/2003, NTFS ACLs are completely ignored by PHP in
determining the file properties. If libc does not provide a list of
NTFS permissions, the list should be available through other means.
That's a pretty important function for filesystem access.
The only way to fix the problem is a change specifically for Win32 to
use the GetSecurityInfo() call from Win32 API. Here's some information
on it from MSDN:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/security/security/getsecurityinfo.asp
Apparently, the Tcl-win folks have had the same problem in porting Tcl
to Windows. Here's a discussion of their problems and possible
solutions:
https://sourceforge.net/tracker/?func=detail&atid=110894&aid=749876&group_id=10894
Previous Comments:
------------------------------------------------------------------------
[2003-11-13 08:19:32] wez@php.net
You do realize that DOS only has a notion of a limited
set of file attributes? (essentially, there is just a
read-only flag).
The "security tab" under windows displays the contents
of the NTFS ACL; PHP just uses the functions provided
by the MS libc, which seem to ignore the ACL.
------------------------------------------------------------------------
[2003-11-13 04:14:27] justin dot white at mci dot com
Oops. It looks like my statement about 4.3.2 was incorrect. The
system I was looking at had some files labeled as "Read Only" in the
file properties, but the file security had no bearing on the result...
Back to the drawing board.
------------------------------------------------------------------------
[2003-11-12 23:56:37] justin dot white at mci dot com
I have been able to confirm that version 4.3.2 does not have this bug.
I will be testing 4.3.4 shortly to see whether the bug has been
resolved...
------------------------------------------------------------------------
[2003-11-12 13:24:05] justin dot white at mci dot com
I also have a RH8 server with PHP 4.3.3 available and the sample code
works flawlessly.
------------------------------------------------------------------------
[2003-11-12 13:23:13] justin dot white at mci dot com
No, the result is the same. It appears that fileperms() and
is_readable/is_writeable are all reading their permissions from file
properties and not from filesystem permissions.
Also, is_executable returned the following error:
"Fatal error: Call to undefined function: is_executable()".
I didn't see where a note was given about availability in Win32 train,
so I don't what is up with that. Both is_readable() and is_writeable()
were available, although incorrect.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/26224
--
Edit this bug report at http://bugs.php.net/?id=26224&edit=1