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] [EMAIL PROTECTED] 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