ID:               33639
 Updated by:       [EMAIL PROTECTED]
 Reported By:      crescentfreshpot at yahoo dot com
-Status:           Verified
+Status:           Closed
 Bug Type:         Documentation problem
 Operating System: SunOS
 PHP Version:      Irrelevant
 New Comment:

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.

"The mode can be changed only by user who owns the file on most
systems." added to "The current user is the user under which PHP runs."
part.


Previous Comments:
------------------------------------------------------------------------

[2005-07-17 11:43:47] [EMAIL PROTECTED]

Confirmed on Fedora/Apache1/PHP5.0.4:

fileowner(myfile.txt) = 32021 
fileowner(chmod.php) = 32021 
fopen(myfile.txt) successful
Warning: chmod() [function.chmod]: Operation not permitted in
/home/expanse/public_html/chmod.php on line 16

This sounds more like a chmod() bug than a doc bug to me.

------------------------------------------------------------------------

[2005-07-11 04:09:28] crescentfreshpot at yahoo dot com

Description:
------------
Docs for chmod state:
"When safe mode is enabled, PHP checks whether the files ... you are
about to operate on have the same UID (owner) as the script that is
being executed"

On a shared user server with php installed as an apache module and
safe_mode on, php is running as 'www'. My script script.php (owner uid
= 8612) operates on myfile.txt (owner uid = 8612) with fopen() and
chmod(). Only fopen works, chmod triggers a "Not owner" warning:

ls -al:
-rwxrwxrwx   1 user1   users   4427 Jul 11 02:38 script.php
-rwxrwxrwx   1 user1   users    282 Jul  8 05:13 myfile.txt

(directory holding these is:
drwxrwxrwx+  2 user1   users    512 Jul 11 02:38 public_html)

Clearly both the script and the file the script operates on have the
same owner.

I know (or suspect) this is not a bug in php but rather a side effect
of the apache user (www) chmod'ing a file it doesn't own. If so perhaps
the docs could be updated to mention this behaviour? chmod in particular
spits out a "Not owner" warning and clearly this can cause needless
confusion with the above ls -al output.

Reproduce code:
---------------
script.php:
<?php
error_reporting(E_ALL);
$file = "myfile.txt";
echo "fileowner($file) = ".fileowner($file)."\n";
echo "fileowner(".basename(__FILE__).") = ".fileowner(__FILE__)."\n";

$fp = fopen($file,'r');

if(is_resource($fp)) {
        echo "fopen($file) successful\n";
        fclose($fp);
} else {
        echo "fopen($file) failed\n";
}

chmod($file,0755);
?>

Expected result:
----------------
fileowner(myfile.txt) = 8612
fileowner(script.php) = 8612
fopen(myfile.txt) successful

Actual result:
--------------
fileowner(myfile.txt) = 8612
fileowner(script.php) = 8612
fopen(myfile.txt) successful
Warning: chmod(): Not owner in /home/user1/public_html/script.php on
line 15



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=33639&edit=1

Reply via email to