Ubuntu – how set read and write permissions for a directory

permissions

I just copied a 2.8 Gb folder to my usr/home directory using Nautilus. It contains many folders and files but I have permission to read none of them. How can I globally set read & write & execute permissions for myself.

I have one user account & the root account on my computer. However I don't want to do everything as root.

Best Answer

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.