how set read and write permissions for a directory
Solution 1:
First change the ownership:
sudo chown -R username: <directory>
(the :
after the username means in fact the user default group, so it resets the group too at the same time)
Now you do not need sudo anymore you can operate under your normal user account.
First get yourself read and write access to all content:
chmod -R u=rw,go=r <directory>
Which means Read and Write access for User (the user owning the files, so that is you), but only Read for Group and Other. The =
means to set the right, whatever it is now, you can also use +
and -
to respectively add or remove the given permission.
You can prefer:
chmod -R ug=rw,o=r <directory>
or even:
chmod -R ug=rw,o= <directory>
And the result should be clear from the explanation above (I do not know why people absolutely continue to use octal encoding to do the same thing, it has no superior value, but anyway if needed, Read is 4, Write is 2 and eXecute is 1, and you have to add the values. So my last example would be 660)
There is only one remaining step. You need to put the eXecute right on each directory and subdirectory otherwise cd
will not work.
For that you can do:
find directory -type d | xargs chmod u+x
The find
command like it says will find, starting at directory
every object that is of type d, d meaning directory here, and the xargs
command will apply the following (chmod u+x
) on all of them, and based on the previous explanations, the u+x
part should be straightforward.
Also, next time, if you start the copy directly under your username, the permissions should be ok from the beginning. If not it means you may have strange permissions on the top directory where you do the copy.
Solution 2:
What work for me is this:
sudo chown -R username yourfoldername
sudo chmod -R 755 yourfoldername