How to use chmod to change permissions
For a long time I've been afraid of using the shell command chmod. That because I didn't understand how it works and I feared breaking things. Today though, I learned how easy it is actually. No, not to break things, but to use the chmod command.
A Unix system allows for multiple users with different access rights, which can be changed in the shell by using this command.
The permissions are for reading, writing and executing (rwx) and are expressed for all three types of users a file or folder has. It will come in the form of
rwxrwxrwx where the first batch of three characters (rwx), belong to the owner, the second to the group, and the third to all the other users (owner/group/other).
Sure, (rwx rwx rwx) would mean that everybody has all the access rights to that particular file or folder. And we all know that's not a good idea. So, most often you'll see something like
rw-r--r-- which means that only the owner has the right to read and write, while everybody else can only read that particular file.
Now onto chmod, which can be used with either a symbolic or a numeric notation for the access settings. You've probably seen somebody else type
chmod 644 file_name on your computer, leaving you wondering about what that means.
That's the numeric notation.
If you think about the access rights as a series of bits, the whole thing would look like this:
rwx rwx rwx = 111 111 111 rw- r-- r-- = 110 100 100 rw- r-x --- = 110 101 000
That translates into
rwx rwx rwx = chmod 777 rw- r-- r-- = chmod 644 rw- r-x --- = chmod 650
because in binary notation:
100 = 4 101 = 5 110 = 6 111 = 7
And now you've got a simple rule on how to construct your chmod command depending on what permissions you need to set.
The rwxr--r-- access rights means chmod 744, rw-r----- is chmod 640, and so on.
Simple enough, right?