Linux file permissions: tick boxes or type 755 or rwxr-xr-x, copy the chmod command
Runs in your browser. Nothing you type is sent anywhere. Updated on 24 Oct 2026.Chmod modes add up three numbers per group: read is 4, write is 2 and execute is 1. So 7 means rwx and 5 means r-x, making 755 rwxr-xr-x: the owner changes the file, everyone else reads and runs it. A fourth leading digit sets setuid (4), setgid (2) or sticky (1).
Tick Read, Write and Execute for Owner, Group and Others, or type a mode such as 755 or rwxr-xr-x.
Read the Octal and Symbolic (ls -l) forms, with what each digit allows.
Tick setuid, setgid or sticky under Special if the file needs them.
Type the File or directory name, turn on -R for a whole tree, and press Copy for the chmod command.
This chmod calculator converts Unix and Linux file permissions between the octal number, such as 755, and the symbolic letters that ls -l prints, such as rwxr-xr-x. Tick the read, write and execute boxes for the owner, the group and everyone else, type a number, or paste the permission column from ls -l, including the leading file type letter; all three stay in step.
Each digit is a sum: read is 4, write is 2 and execute is 1. The owner's 7 is 4 + 2 + 1, the group's 5 is 4 + 1. A fourth digit in front holds the special bits: setuid (4) runs a program as its owner, setgid (2) runs it as its group or makes a directory's new files inherit the group, and sticky (1) lets people delete only their own files in a shared directory like /tmp. In the letters these show as s or t in the execute position, and as a capital S or T when execute is not also set, which usually means a mistake.
The command line underneath is ready to copy, in numeric form (chmod 755 file) or symbolic form (chmod u=rwx,g=rx,o=rx file), with -R for a whole directory tree and your file name quoted for the shell if it contains spaces. Warnings appear for modes that are usually a mistake, such as a world-writable file.
The umask box shows what a umask does to new files, which start from 666, and new directories, which start from 777. A umask of 022 gives 644 and 755; 077 gives 600 and 700.
What it does not do: change any file, read access control lists (ACLs), or apply relative changes such as g+w to an existing mode. Everything runs in your browser. Related tools: Number Base Converter, Cron Expression Builder.
The owner gets 7, which is read (4) plus write (2) plus execute (1). The group and everyone else get 5, read plus execute. So anyone can run the program or open the directory, but only the owner can change it. In ls -l it appears as rwxr-xr-x.
Both let only the owner write. 755 adds execute for everyone, which a script, a program or a directory needs; 644 leaves execute off, which suits ordinary files such as web pages, images and configuration. Giving a plain file 755 is harmless but unnecessary.
Mode 777 lets every user on the machine change, replace or delete the file, and run it. On a web server that means any compromised process can rewrite your code. Directories that really must be shared should use 1777, which adds the sticky bit so people can delete only their own files.
A lower-case s in the owner or group execute position means setuid or setgid is on and execute is on. A capital S means the special bit is on but execute is off. The same goes for t and T in the last position, which show the sticky bit.
Programs normally create files with 666 and directories with 777, and every bit set in the umask is removed. With umask 022, files come out as 644 and directories as 755. With 077 they are 600 and 700, private to the owner. A umask never adds permissions.
No. The page only works out the numbers and writes the command for you to run in a terminal. Nothing is uploaded and no file is touched. Paste the command into a shell on the machine that holds the file, adding sudo if you do not own it.
Still stuck? Ask about Chmod Calculator and anybody who knows can answer. No account needed.
On the related tools: TSV to JSON – Convert tab-separated values, such as a paste from Excel, into JSON · Query String Parser – Split a URL query string into a table of decoded parameters.