Tuesday 29 March 2016

Linux File permissions

What I'll cover in this article is how to identify permissions for files & directories and how to change them, as well as changing ownerships, groups, etc. Depending on what you want to do, you'll want to make sure you have the appropriate permissions (obviously), so let's find out how to change them.

1.     File Permission Groups
2.     File Permission Types
3.     Viewing File Permission
4.     Modifying File Permission

1.   File Permission Groups:
Each file and directory has three user based permission groups:

  • owner - The Owner permissions apply only the owner of the file or directory.
  • group - The Group permissions apply only to the group that has been assigned to the file or directory.
  • all users - The All Users permissions apply to all other users on the system.

Example:

-rwxrw-r-- 
file1.txt
In the whole we have 10 digits ,
( 1 )First field ( - ) gives the type of file ,
( 2 - 4 ) Next three field tells about Owner’s access on the file .
( 5 - 7 ) Next three fields tells about access of groups on the file .
( 8 - 10 ) Last three fields tells about all other users access on the file . In the above example,
Owner has complete access ie. Read, Write and Execute permission. 
Group has read and write permission on the file file1.txt .
All other users have read-only access on the file .

2. File Permission Types:
Each file or directory has three basic permission types:
  •  read - The Read permission refers to a user's capability to read the contents of the file.
  • write - The Write permissions refer to a user's capability to write or modify a file or directory.
  • execute - The Execute permission affects a user's capability to execute a file or view the contents of a directory.

Example :
rwxrwxrwx file1.txt 
In the above ,
r  Stands for Read access. 
w  Stands for Write access.
x  Stands for Execute permission.

3.   Viewing File Permission:
ls command helps to list the files in the directory . It also helps to display the files with its permission. 

COMMAND:

ls –l helps to list the files with their permissions .

    Example:
             A directory named sample under root directory contains list of below files. 
sample1.txt
sample2.txt 
sample3.txt
Linux $ ls –l /sample
rwxrwxrwx sample1.txt 
rwxrw-r-- sample2.txt 
rwx------ sample3.txt
In sample1.txt , Every users has complete access on it .
In sample2.txt , Owner has complete access , Group has read write access , all others has read only access .
In sample3.txt , Only owner of the file has permission to access the file .
4.   Modifying File Permission:
In Linux, File permission can be modified using command chmod. In Linux, chmod stands for change mode.
There are two types of method to change file permission using chmod. They are,
        4.1    Using Assignment operator,
        4.2    Using Numeric values.

4.1
   chmod - Using Assignment operator:
        Assignment operators used in modifying file permission using chmod are “+” and “-”.
        “+”  This operator helps to provide permission to the file or directory. 
         “-”  This operator helps to remove permission to the file or directory. 
          The Permission Groups used here are:
          u - Owner 
          g - Group
          o or a - All Users

The
 Permission Types that are used here are: 
        r - Read
       w - Write
       x  Execute

Example:

Using above permission groups and types in chmod we change the
 permission of the file.

Linux $ 
ls –l /sample 
       rwxrwxrwx sample1.txt
       rwxrw-r-- sample2.txt 
       rwx------ sample3.txt
       Providing file permission using + operator, 
       Linux $ chmod a+rw sample3.txt
      The above command provides read and write permission to global users.

Linux $ 
ls –l sample3.txt 
rwx---rw- sample3.txt
Removing file permission using - operator,

Linux $ 
ls –l /sample
rwxrwxrwx sample1.txt
rwxrw-r-- sample2.txt 
rwx---rw- sample3.txt
Removing file permission using - operator, Linux $ chmod a-wx sample1.txt
The above command removes read and write access to global users.

Linux $ 
ls –l sample1.txt 
rwxrwxr-- sample1.txt

4.2
   chmod - Using Numeric values:

Numeric values for type of permissions are,
 
r = 4
w = 2
x = 1

Below are the numeric values for different type of permissions, 
7 = 4+2+1 (read/write/execute)
6 = 4+2 (read/write)
5 = 4+1 (read/execute)
4 = 4 (read)
3 = 2+1 (write/execute)
2 = 2 (write)
1 = 1 (execute)

Example:
chmod 400 sample.txt  read by owner
chmod 040 sample.txt  read by group
chmod 004 sample.txt  read by anybody (other) 
chmod 200 sample.txt  write by owner
chmod 020 sample.txt  write by group 
chmod 002 sample.txt  write by anybody 
chmod 100 sample.txt  execute by owner
chmod 030 sample.txt  write and execute by group
chmod 001 sample.txt  execute by anybody 
chmod 666 sample.txt  read and write by anybody
chmod 755 sample.txt  rwx for owner, rx for group and rx for the world 
chmod 777 sample.txt  read, write, execute for all.




No comments:

Post a Comment