Aim: To explain the concept of user permissions and changing the permissions.
Every file in linux has 3 kinds of permissions Read,write and execute, these permissions are with respect to three kinds of users.
1. The owner of the file, i.e. the user who created the file.
2. The group to which the owner of the file belongs to.
3. Every one else or called as others.
To view the permissions that a file holds use the long listing format of the "ls" command. i.e. ls -l
user@Desktop:~/folder1$ ls -l
drwxr-xr-x 2 satish satish 4096 2010-04-25 20:59 one
drwxr-xr-x 2 satish satish 4096 2010-04-25 20:59 three
drwxr-xr-x 2 satish satish 4096 2010-04-25 20:59 two
The first line in the long listing will is the total size of the folder.
From the second line onwards there are 17 columns. Which give the following information.
The first field denotes what kind of file it is. A "d" indicates it is a directory . A "-" indicates it is a normal text file.
A "l" indicates it is a soft link. [ If you don't understand soft link then its ok, we will come to that later]
The remaining 9 fields of the columns one are the permissions of the file.
A "r" indicates "read" permission .
A "w" indicates write permission .
A "x" indicates execute permission.
The first set of three fileds indicate the permission of the owner of the file
The second set of three fileds indicate the permission of the group to which the owner belongs
The third set of three fields indicate the permission of the others, who are neither the owner of the file nor belong to the group of the owner.
The command to change permissions of a file is "chmod" which stands for change mode.
syntax: chmod "permissions" file
The permissions that you have we want to set can be passed in two ways.
If you are not familiar with the octal numbers than skip this section. There is another way of setting the permission given in the next section.
We have three fields per user, a "1" in a field indicates that permission is eanbled a "0" indicates the permission is disabled.
Three bits in binary can maximum represent the number "7".
For eg the octal way of denoting the permissions , user having read,write execute, Group having read and write and others having only read permission would be
111110100 which when converted to octal would be 764.
so the command would be as follows.
user@Desktop:~/folder1$ chmod 764 "filename"
Changing File permissions using aplhabets:
The other way of setting the file permissions is using the "alphabets" "r" for read, "w" for write and "x" for execute.
A "+" signifies add permission and a "-" signifies remove permission.
To add read permission for a user use the "chmod" command as follows
user@Desktop:~/folder1/one$ chmod u+r file1
To add the execute permission for others we can use the "chmod" command as follows
user@Desktop:~/folder1/one$ chmod o+x file1
To remove write permission for the group, we can use the "chmod" command as follows
user@Desktop:~/folder1/one$ chmod g-w file1
To add a permission to users,group as well as others in one go, we can use the "chmod" command as follows
user@Desktop:~/folder1/one$ chmod a+x file1
We can also add or remove multiple permissions in one go as follows
user@Desktop:~/folder1/one$ chmod a+rw file1
The above command give read and write permission to every one.
The second column indicates the number of links to the file. We will get into the concept of links later.
Column3:Gives the owner of the file.
Column4: Gives the group to which the owner belongs to.
Column5: Gives the size of the file
Column6: Gives the last date on which it was modified.
Column7: Gives the time of modification.
Column8: Gives the file name itself.