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

Reply via email to