When you are first starting out using Linux, file permissions while being an easy concept to understand seem like they are very hard to setup. Most of the time you will see a three digit number which “magically” will determine what the permissions are going to be. This is actually a very easy system and once you learn how it works it makes a lot of sense.
Permissions on a linux system can be set for three different situations, permissions for your username, permissions for others in the same group as you, and everyone else. Each of these permissions are shown as a nine character string of letters such as r-xrw-rw-. The first three characters are the user permissions, the second three characters are the group permissions and the last three characters are permissions for everyone else. An example is below:
drwxrwxr-x 2 nobody nobody 1048 Jun 20 12:37 somefile.txt
There are two different ways to change file permissions, the first way is to set all three groups at the same time:
chmod +x -w somefile.txt
That is adding execute to the file while removing write access for user,group and everyone. This is a very simple way to do file permissions but it doesn’t allow the full range you may want. The next method allows you to define which permissions are assigned to the user, the group and everyone else.
chmod 744 somefile.txt
In this example you are saying setting user to 7 group to 4 and everyone else to 4, or rwxr–r–. So now how did I come up with those numbers? You use the chart below and just add the permissions you want together. So if was want the user to have read (4), write(2), execute (1) you get 7. Then you would do the same for both the group and everyone else.
1 = x = execute
2 = w = write
4 = r = read