chmod is a Linux and OS X command that changes the permissions of a file.
Octal Permissions[]
Files have a specified owner (a single user) and group (a bunch of users). File permissions are stored in three parts:
- The owner's permissions
- The group members' permissions
- Everyone else's permissions
Each of these individual permissions is made of three bits: Read, Write, and eXecute.
Viewing Permissions and Ownership[]
Run
ls -l filename
The output should look something like
-rwxr-xr-- 1 lvuser root 420 Apr 20 04:20 filename
We only really care about the second through tenth characters (i.e. the first chunk, except the first character. If you really care, a dash means a file, and "d" means directory). In this example,
- The owner can read, write, and execute (rwx)
- The group members can read and execute only (r-x)
- Everyone else can only read (r--)
Writing Permissions in Octal[]
Convert the triplets to binary in the obvious way (rwx=111, r--=100, etc.). Then just convert these to octal. Join them together into a three digit octal number (754 in our example above). Congrats, you did it!
Changing Permissions[]
All at once[]
Use the syntax
chmod 754 filename
to change the permissions of filename to 754
Individually[]
Use the syntax
chmod [ugoa]*[+-=][rwx]* filename
Where brackets mean choose one of the symbols. The asterisk means you can do it multiple times, so
chmod ug+rx filename chmod o+w filename chmod a-w filename
are all valid. Note that
- u means owner
- g means group
- o means everyone
- a is equivalent to ugo