Chmod does not change permissions of certain directories

chmodext4permissions

System file: ext4

I changed the owner of files to apache: with the command:

chown -R apache: wp.localhost

Then, I could not change the permissions of directories in wp.localhost nor the wp.localhost itself

I use the command chmod +w wp.localhost for example. and I do not see any permission change on it.

I also changed the group of folders by the command again, But did not solve the problem.

chown -R apache:users wp.localhost

Commads and permissions before and after:

#ls -ld wp.localhost
drwxr-xr-x 6 apache users 4096 Mar 28 15:26 wp.localhost/
# chmod +w wp.localhost
# ls -ld wp.localhost
drwxr-xr-x 6 apache users 4096 Mar 28 15:26 wp.localhost/

Best Answer

If you want to grant global write permission on that directory, you have to do

chmod a+w wp.localhost [1]

This is because omitting the 'who is affected' letter (u, g, o or a) implies a, but won't set bits that are set in your current umask. So, for example, if your umask was 0022, the 'write' bit is set in the 'group' and 'other' positions, and chmod will ignore it if you don't specify a explicitly.

The chmod man page is explicit about this:

If none of these ['who is affected' letters] are given, the effect is as if a were given, but bits that are set in the umask are not affected.

[1] Think carefully before doing this!

Related Question