|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2007-05-28 16:24 UTC] marcelo dot schmidt+php at gmail dot com
Description: ------------ I have the following permissions on a file: Everyone have full control, though they are denied read and read & execute. is_readable is returning true for this file, while fopen is not able to read it (which is expected). PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 12:00:02 2025 UTC |
This bug still exists in PHP-5.2.11-dev (phpinfo(): System Windows NT, 5.2 build 3790, Build Date Aug 11 2009 11:42:34). Here some more detailled information. is_readable and is_writable seem to ignore ACLs. testcase: The apache 2.0.63 service runs as user "apache". I created three files as follows: - "not_readable.txt" without any permissions for user "apache" - "readable.txt" with permissions "Read, Execute" and "Read" - "writable.txt" with permissions "Change", "Read, Execute", "Read", "Write" testcode: echo 'not_readable.txt is ' . (is_writable('not_readable.txt') ? 'writable' : 'not writable') . '; '; echo 'fopen("not_readable.txt", "a") returns ' . (@fopen("not_readable.txt", "a") ? 'true' : 'false'). '<br/>'; echo 'not_readable.txt is ' . (is_readable('not_readable.txt') ? 'readable' : 'not readable') . '; '; echo 'fopen("not_readable.txt", "r") returns ' . (@fopen("not_readable.txt", "r") ? 'true' : 'false'). '<br/>'; echo 'readable.txt is ' . (is_writable('readable.txt') ? 'writable' : 'not writable') . '; '; echo 'fopen("readable.txt", "a") returns ' . (@fopen("readable.txt", "a") ? 'true' : 'false'). '<br/>'; echo 'readable.txt is ' . (is_readable('readable.txt') ? 'readable' : 'not readable') . '; '; echo 'fopen("readable.txt", "r") returns ' . (@fopen("readable.txt", "r") ? 'true' : 'false'). '<br/>'; echo 'writable.txt is ' . (is_writable('writable.txt') ? 'writable' : 'not writable') . '; '; echo 'fopen("writable.txt", "a") returns ' . (@fopen("writable.txt", "a") ? 'true' : 'false'). '<br/>'; echo 'writable.txt is ' . (is_readable('writable.txt') ? 'readable' : 'not readable') . '; '; echo 'fopen("writable.txt", "r") returns ' . (@fopen("writable.txt", "r") ? 'true' : 'false'). '<br/>'; actual result: not_readable.txt is writable; fopen("not_readable.txt", "a") returns false not_readable.txt is readable; fopen("not_readable.txt", "r") returns false readable.txt is writable; fopen("readable.txt", "a") returns false readable.txt is readable; fopen("readable.txt", "r") returns true writable.txt is writable; fopen("writable.txt", "a") returns true writable.txt is readable; fopen("writable.txt", "r") returns true expected result: not_readable.txt is not writable; fopen("not_readable.txt", "a") returns false not_readable.txt is not readable; fopen("not_readable.txt", "r") returns false readable.txt is not writable; fopen("readable.txt", "a") returns false readable.txt is readable; fopen("readable.txt", "r") returns true writable.txt is writable; fopen("writable.txt", "a") returns true writable.txt is readable; fopen("writable.txt", "r") returns true