Work with Permissions in Linux


Hi and welcome to another blog. Today we are going to talk about permissions Linux. I've performed everything in Ubuntu. You can do the same thing with Kali Linux as well.

Let's get into things quickly.
So what do you understand by Owner and permissions? An owner is some who owns something or some property with some writes. For example, I'm the owner of Uk2blogger I do have permission to made change, delete or provide some permissions to others by making them the editor of this page. I have all the permissions, but the editor must have some sort of restrictions. The editor might not be able to delete his or mine written blog.

Similar to this, the Linux file system has some criteria for owners and read, write, execute or no permissions. Let us check this in a specific detailed version.
First, we will talk about Ownership than we will move Permissions assigned to them.

1. Ownership- Who owns the ownership, it can be root or system username or something else. All directory has three types of owner; user, group and others.

*Ist USER (user is the owner of the file, by default who created, a user is also known as the owner, he should have all the permissions to rung the file or execute the file properly).

*2nd GROUP (there can be multiple users, all user in the group has the same access to the file, user can allow the group to follow some permissions).

*3rd OTHER- (any other user in the world or public who has access to files, it means everybody else, set permission for the world).

2. Permission- Evey file and directory in Linux system has three permissions Read, write, and Execute for all the three users above.

*READ (r) - a type of owner can Open and Read a file to list content

*WRITE(w) - type of owner can modify the content of a file, add remove and rename files stored in a directory
*EXECUTE(x) - type of owner allows executing the files like we execute in windows.
*NO PERMISSION(-) - type of owner is not allowed to do anything with the file, simply no access.

We can list the permission by command ls -l it will show some sort of information like

Shown in the image below
Permission    user     group    etc

ls -l <command shows all the permissions assigned to a file for all three types of users. We will understand it in more detail.

We already know the symbols and related terms
r= read
W= write
x= execute
-= no permission

Read carefully
We can break the text in this formate
-/---/---/--- Means ((-file selected a file or 'd' it's a directory)) / ((--- Ist USER)) / ((---2nd GROUP)) / ((---3rd OTHER))

This means all three owners can have three types of read write and execution permission or can have - no permission. The very first sign - stands for the file selected or if the first sign is an 'd' it means the rest of the codes belong to a directory. To remove a directory you have to pass command 'rmdir' to remove a file you have to pass 'rm', be careful understand it first then move further.

Everything below is reference to Image 1 above

-rw-rw-r-- let's break these codes further
    1ST PART(-file)/ -------------(this can be '-' stands for select a file and if it is a directory there has to 'd' stands for directory. If the very first hyphen is '-' it means it is a file or the first hyphen is 'd' it means that is a directory)
    1st USER PART( rw- ) User read and write/

    2nd GROUP PART( rw- ) Group read and write/

    3rd OTHER PART( r-- ) Others read-only/

Let us understand it quickly- Selected a file, rw- permissions for the owner(he can read the file and write and edit the file but he can not execute the file), rw- user group member can read and write and edit the file, r-- the user can only read the file.

CHANGING FILE PERMISSIONS TO RESTRICT OTHER USERS, GROUP, OTHERS TO READ, WRITE, EXECUTE THE FILE OR DIRECTORY YOU MADE OR PRESENT IN YOUR SYSTEM.

You can use the command which is based on
chmod permissions Folder/file.txt
Set Permission (read,write, execute) (Folder/file.txt)

There are two ways to use the chmod command
1st Absolute Mode (three digit octal)
Example '123' first place stands for USER, tens place stands for GROUP hundredth place stands for OTHERS/Public. We have already discussed above.

0    No Permission    ---
1    Execute        --x
2    Write        -w-
3    Execute+Write    -wx
4    Read        r--
5    Read+Execute    r-x
6    Read+Write    rw-
7    R+W+E        rwx

For example, a file has no permissions for all the three owners it will be shown

 ---------- 1 anyname anyname    0 Dec 18 18:20 file.txt

d--------- 2 anyname anyname 4096 Dec 18 18:20 Folder
As shown below Image 2


Let us change the permission for the file.
Command will be like this
We want to allow all the three permissions to User Read Write And Execute
For group we want to allow Read and Write only
For others, we want to have No Permissions.
According to the above chmod Absolute Mode, we can have three numbers for three different users. So the command will be like
chmod 760 file.txt
chmod 760 Folder
Check in Number index I've shared above
(7= First user, RWX)
(6= 2nd group, RW-)
(0= others, ---)
so the output will be similar as shown below
-rwxrw---- abc.txt
This is how we can change the permission using Absolute Mode chmod command.

Now move to 2nd way using Symbolic Mode

 Operator        Description
+            Adds a permission to file or directory
-            Remove the Permissions
=            Set and overwrites the permissions set earlier

User      Denotations
Symbol        Details
u                        user/owner
g                        Group
o                        Others
a                        All above

Again command will be like, first we will overwrite the permission using = sign
-rwxrw---- 1 anyname anyname    0 Dec 18 18:20 file.txt
drwxrw---- 2 anyname anyname 4096 Dec 18 18:20 Folder


 Now we wan to provide no access to all the users for both of the files using = overwrite equalto symbol. After that using + we will add rwx permission to one of the file. Shown in image Below


Similarly, we can remove some of the permissions using - hyphen sign. For example
chmod g-rwx file.txt
here g stands for group, - mens we want to remove some permissions from group, rwx means the group will have read, write but they would no longer be able to execute the file.txt. Hope you understand that.

Now let us change the ownership of the file
Please check the first image above to get the location of the owner in the list of files. Below the user anyname is the owner of these files. You can change it to something or root user. Let us change it using chown username file.txt command.
sudo chown root file.txt after that we have changed the Group name as well. using chown username:username file.txt. See the image below.
Now we will see how to change group only,
sudo chgrp root file.txt   (ch means change, grp means group) Shown in the image below.

This was it for the day, we will be back with some new informative blog very soon. Till than bye bye take care.

You can watch this entire tutorial in the form of video now.

Disqus Comments