Control who can access files, search directories, and run scripts using the Linux’s chmod
command. This command modifies Linux file permissions, which look complicated at first glance but are actually pretty simple once you know how they work.
chmod Modifies File Permissions
In Linux, who can do what to a file or directory is controlled through sets of permissions. There are three sets of permissions. One set for the owner of the file, another set for the members of the file’s group, and a final set for everyone else.
The permissions control the actions that can be performed on the file or directory. They either permit, or prevent, a file from being read, modified or, if it is a script or program, executed. For a directory, the permissions govern who can cd
into the directory and who can create, or modify files within the directory.
You use the chmod
command to set each of these permissions. To see what permissions have been set on a file or directory, we can use ls
.
Viewing and Understanding File Permissions
We can use the -l
(long format) option to have ls
list the file permissions for files and directories.
ls -l
On each line, the first character identifies the type of entry that is being listed. If it is a dash (-
) it is a file. If it is the letter d
it is a directory.
The next nine characters represent the settings for the three sets of permissions.
- The first three characters show the permissions for the user who owns the file (user permissions).
- The middle three characters show the permissions for members of the file’s group (group permissions).
- The last three characters show the permissions for anyone not in the first two categories (other permissions).
There are three characters in each set of permissions. The characters are indicators for the presence or absence of one of the permissions. They are either a dash (-
) or a letter. If the character is a dash, it means that permission is not granted. If the character is an r
, w
, or an x
, that permission has been granted.