Bug #80492 [Com]: CHMOD does not work
| From: | dharman@php.net | Date: | Mon, 07 Dec 2020 18:15:18 +0000 |
| Subject: | Bug #80492 [Com]: CHMOD does not work | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-230922@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=80492&edit=1
ID: 80492
Comment by: dharman@php.net
Reported by: gilperon at gmail dot com
Summary: CHMOD does not work
Status: Not a bug
Type: Bug
Package: *General Issues
Operating System: CENTOS 7 and 8
PHP Version: 8.0.0
Block user comment: N
Private report: N
New Comment:
Thanks for your interest in making PHP better but this is the correct behaviour. To change a file
you need to have permissions or be the owner. However, to remove a file from a directory you need to
have permissions for that directory or be the owner of that directory. If you have write permissions
for the directory then you can remove files even ones you do not own. This is the correct behaviour
of Linux systems and it is not the problem specific to PHP.
Previous Comments:
------------------------------------------------------------------------
[2020-12-07 17:46:37] gilperon at gmail dot com
peehaa@php.net what? Who says that's how it works? You? Check some example man page of chmod
https://linux.die.net/man/1/chmod
I checked others too, there is absolutetly nothing saying the permission should not be changed if
the owner is not who is requesting the permission change. I AM NOT CHANGING owner, I am chaning the
permission. There is no security implication since I can already delete and write to that file.
I cant see how you came to the conclusion on your own.
------------------------------------------------------------------------
[2020-12-07 17:33:49] peehaa@php.net
This is just how it works. To chmod a file you either need to be the owner or root
------------------------------------------------------------------------
[2020-12-07 17:30:43] gilperon at gmail dot com
Description:
------------
This bug happens also on PHP 7.X and 8.X.
When using PHP command "chmod(filename,persmission);" on a file owned by "root",
PHP will say "Operation not permitted". Alright, it looks fine, since apache runs as
"apache" user.
HOWEVER I can easily use "unlink", "move_uploaded_file",
"file_put_contents" and many other PHP functions on files OWNED BY ROOT and any other
user.
So why cant "chmod" change the file permission of a file that other PHP functions may well
EVEN DELETE OR WRITE to that file, despite being owned by another user on ther server. I can see how
this isnt a bug and it took me 3 hours to get to the bottom of it cause I couldnt belive what was
happening since I could easily read/write to files but weirdly, "chmod" couldnt change
permission.
Test script:
---------------
chdmod(filename,0777)
Expected result:
----------------
permission should be shown
Actual result:
--------------
OPERATION NOT PERMITTED.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80492&edit=1