Short for "file system permissions" - access control based on user, group, or global access.
In a Linux file system every file has some metadata attached to it that controls who is allowed to access it, and what they are allowed to do. Human users and system users are subject to these rules. Permissions are set separately for the owner and group owner of a file and for all others. The only user who can gain and grant permission to do anything to any file, regardless of ownership, is root. Normal users can access root's privilege using
The read, write and execute attributes have different meanings for files and for directories:
There are also special permission bits. One is setuid, which allows the user executing a program to do so as the file's owner. The main use for this is the
sudo program. Another is setgid, which causes the user's effective group ID to be that of the group that owns the file. The main use for this is creating directories that need to be shared by multiple users so that files created in them will be accessible to group members. Another is the "sticky bit", only applicable to directories, which restricts permission on renaming and deleting files inside them.
File permission settings are also called the file's mode and are modified by the
chmod (change mode) command.
chmod recognises symbolic notation, using the letters
o (others) and
a all to
+ (add) or
- remove permissions.
chmod also recognises octal notation, for example
644 corresponds to
-rw-r--r-- File ownership is changed using the
The default mode of files or directories created in a system is defined by the
In addition to the traditional permissions system, an extension to it that provides more fine-grained control is the ACL (access control list) system, which allows permissions to be specified for a single user.