Chmod Calculator

Chmod calculator allows you to quickly generate permissions in numerical and symbolic formats. All extra options are included (recursive, sticky, etc). You’ll be ready to copy paste your chmod command into your terminal in seconds.

Owner Rights (u) Group Rights (g) Others Rights (o)
Read (4)
Write (2)
Execute (1)
Extra chmod command options

Use the octal CHMOD Command:

chmod -R 777 folder_name
OR use the symbolic CHMOD Command:

chmod -R a+rwx folder_name

Chmod Permissions for chmod 777

Chmod owner

  • Owner can read
  • Owner can write
  • Owner can execute

Chmod group

  • Group can read
  • Group can write
  • Group can execute

Chmod other

  • Others can read
  • Others can write
  • Others can execute

How chmod 777 looks in file listing

For files

After changing a file's mode to 777 the file's mode will be displayed in Unix style file lsting as: -rwxrwxrwx

For folders

After changing a directory's mode to 777 the folder's mode will be displayed in Unix style file lsting as: drwxrwxrwx

What is chmod?

Chmod means ‘change mode’ and it changes file or directory mode bits (the way a file can be accessed). You can use chmod in the command line to change file or directory permissions on unix or unix-like systems such as linux or BSD.

How to use chmod?

You can change file permissions in this format:

chmod [options] [mode] [file_name]

You can change permissions using alphanumeric characters (a+rwx) or with octal numbers (777).

Here’s a chmod example using for setting permissions so that:

  1. Owner can read, write and execute
  2. Group can read, write and execute
  3. Others can read, write and execute

Chmod example (alphanumeric): chmod a+rwx
Chmod example (octal): chmod 777

What are permissions?

Each file on a system has a set of permissions associated with it, meaning which users have access and what type of access they have.

There are three types of users:

  1. User, meaning the user who owns the file
  2. Group, meaning the files defined ownership group
  3. Other, meaning everyone else

Each of these types of users can have three types of file access:

  1. Read (r), meaning the ability to look at the contents of a file
  2. Write (w), meaning the ability to change the contents of a file
  3. Execute (x), meaning the ability to run the contents of a file

File access, meaning permissions, can be represented alphanumerically (using symbols like r for read, w for write and x for execute) or using octal numeric values (755 for example).

Chmod options

You can extend chmod permissions with options.

Most popular options are:

  • -r for ‘recursive’, include same mode in subdirectories
  • -f for ‘force’, forge ahead with all objects even if errors occur
  • -v for ‘verbose’, show objects processed
Tag Description
-f, --silent, --quiet Suppress most error messages
-v, --verbose Output a diagnostic for every file processed
-c, --changes Like verbose but report only when a change is made
--reference=RFile Use RFile's mode instead of MODE values
-R, --recursive Change files and directories recursively
--help Display help and exit
--version Output version information and exit

Chmod special modes

Setuid and setgid

Setuid and setgid (short for 'set user ID upon execution' and 'set group ID upon execution', respectively) are Unix access rights flags that allow users to run an executable with the permissions of the executable's owner or group respectively and to change behaviour in directories. They are often used to allow users on a computer system to run programs with temporarily elevated privileges in order to perform a specific task. While the assumed user id or group id privileges provided are not always elevated, at a minimum they are specific.

Setuid for a directory

The setuid permission set on a directory is ignored on UNIX and Linux systems.

Setgid for a directory

Setting the setgid permission on a directory ('chmod g+s') causes new files and subdirectories created within it to inherit its group ID, rather than the primary group ID of the user who created the file (the owner ID is never affected, only the group ID). Newly created subdirectories inherit the setgid bit. Thus, this enables a shared workspace for a group without the inconvenience of requiring group members to explicitly change their current group before creating new files or directories. Note that setting the setgid permission on a directory only affects the group ID of new files and subdirectories created after the setgid bit is set, and is not applied to existing entities.

Chmod in numeric mode (octal)

Octal number Permissions As seen in file listing
7 read, write and execute rwx
6 read and write rw-
5 read and execute r-x
4 read only r--
3 write and execute -wx
2 write onyl -w-
1 execute only --x
0 none ---

Chmod examples in octal mode

Readable by owner only

$ chmod 400 chmodExampleFile.txt

Readable by group only

$ chmod 040 cchmodExampleFile.txt

Readable by anyone

$ chmod 004 chmodExampleFile.txt

Writeable by owner only

$ chmod 200 chmodExampleFile.txt

Writeable by group only

$ chmod 020 chmodExampleFile.txt

Writeable by anyone

$ chmod 002 chmodExampleFile.txt

Executeable by owner only

$ chmod 100 chmodExampleFile.txt

Executeable by group only

$ chmod 010 chmodExampleFile.txt

Executeable by anyone

$ chmod 001 chmodExampleFile.txt

Allow read permission to owner and group and anyone.

$ chmod 444 chmodExampleFile.txt

Allow everyone to read, write, and execute file.

$ chmod 777 chmodExampleFile.txt

Chmod in symbolic mode

Mode Description
r Readable
w Writable
x Executable
Target Description
u User / owner
g Group
o Others
a All

Chmod examples in symbolic mode

Deny execute permission to everyone.

$ chmod a-x chmodExampleFile.txt

Allow read permission to everyone.

$ chmod a+r chmodExampleFile.txt

Make a file readable and writable by the group and others.

$ chmod go+rw chmodExampleFile.txt

Make a shell script executable by the user/owner.

$ chmod u+x

Allow everyone to read, write, and execute the file and turn on the set group-ID.

$ chmod =rwx,g+s

Links for more learning:
File system permissions