How to use Chmod Calculator
The Chmod Calculator translates between Unix file permission checkboxes, octal notation (e.g. 755), and symbolic notation (e.g. rwxr-xr-x) interactively in your browser. Understanding Unix permissions is essential for anyone deploying files to Linux or macOS servers: wrong permission bits are one of the most common causes of web application errors, SSH key rejection, and cron job failures.
- Tick the read (r), write (w), and execute (x) checkboxes for each of the three permission groups: Owner, Group, and Others.
- Watch the octal value and symbolic string update live as you toggle each checkbox.
- Alternatively, type an octal value directly (e.g. 644) and the checkboxes will reflect the corresponding permissions.
- Review the generated chmod command (e.g. chmod 755 filename) ready to paste into your terminal.
- Use the sticky/setuid/setgid toggles for advanced cases such as shared directories or executables that run as their owner.
Your data never leaves your device — 100% private processing.
Octal permission notation explained
Unix permissions are stored as a 9-bit field divided into three 3-bit groups: owner, group, and others. Each group maps to one octal digit: read = 4, write = 2, execute = 1. Add the values for the permissions you want: 7 (4+2+1) means full access, 6 (4+2) is read-write, 5 (4+1) is read-execute, 4 is read-only. A 755 directory means the owner can read, write, and enter; everyone else can read and enter but not write. A 644 file is readable by all but writable only by the owner — the correct permission for most web content.
| Octal | Binary | Symbolic | Meaning |
|---|---|---|---|
| 0 | 000 | --- | No permissions |
| 1 | 001 | --x | Execute only |
| 2 | 010 | -w- | Write only |
| 4 | 100 | r-- | Read only |
| 5 | 101 | r-x | Read and execute |
| 6 | 110 | rw- | Read and write |
| 7 | 111 | rwx | Read, write, and execute |
Common permission patterns and when to use them
The most commonly used chmod values cover the majority of real-world scenarios. 644 (rw-r--r--) is correct for static files: the web server reads them, no one executes them. 755 (rwxr-xr-x) is correct for directories and executable scripts: the owner can modify contents, everyone can list and traverse. 600 (rw-------) restricts a file to its owner only — required for SSH private keys (ssh will refuse keys with looser permissions). 777 (rwxrwxrwx) grants full access to everyone and should almost never be used in production as it creates significant security exposure.
Worked examples
Symbolic to octal
Inputs: rwxr-xr-x
Result: 755 (owner 7, group 5, others 5)
Web file permissions
Inputs: rw-r--r--
Result: 644
Private SSH key
Inputs: rw------- (owner only)
Result: 600
Glossary
- Octal notation
- A base-8 representation of Unix permission bits where each digit encodes read (4), write (2), and execute (1) for one group.
- Setuid
- A special permission bit that makes an executable run with the file owner's privileges rather than the caller's.
- Sticky bit
- When set on a directory, prevents users from deleting files they do not own — commonly applied to /tmp.
- umask
- A system mask that subtracts permissions from the default when new files are created; e.g. umask 022 creates files as 644.
- ACL
- Access Control List — an extended permission system beyond the basic owner/group/others model, supported on modern Linux and macOS.
Related reading
Frequently Asked Questions
Why use Chmod Calculator?
- Toggle permission checkboxes and watch the octal and symbolic notation update live
- Type any octal value (644, 755) to instantly see which permission bits it sets
- Copy the exact chmod terminal command with the chosen value ready to paste
- Handle sticky, setuid, and setgid special bits for advanced server configurations
Common use cases
- Find the correct octal value for a web server file (644) without memorising the bit layout
- Set SSH private key permissions to 600 before adding the key to an ssh-agent
- Debug a PHP script failing with permission denied by checking whether the execute bit is set
- Configure a shared directory with sticky bit (1775) so users cannot delete each other's files
- Verify that a cron script has the execute permission required for unattended scheduling
Get weekly tool tips & updates
New tools, power-user tips, and productivity hacks — delivered free every Friday.
No spam, ever. Unsubscribe with one click.
Related Developer Tools
.gitignore Generator
Generate a .gitignore file for your project. Pick languages, frameworks, and tools to build a ready-to-use git ignore file. Free and private.
.htaccess Redirect Generator
Generate .htaccess redirect rules online. Create 301/302 redirects, www and HTTPS forcing, and RewriteRule snippets for Apache. Free and private.
Base64 Encoder & Decoder
Encode text or files to Base64, or decode Base64 strings back to text in seconds. Free, private, and fully in-browser now.
Hash Generator
Generate SHA-1, SHA-256, SHA-384, and SHA-512 hashes instantly in your browser. Free, private, and secure for quick checks.
UUID Generator
Generate random UUID v4, timestamp-based UUID v1, and ULID identifiers. Bulk-generate up to 100 at once and copy them instantly — free and private.
JSON Formatter & Validator
Format, validate, and minify JSON instantly. Includes syntax highlighting, error detection, and a collapsible tree view — free, private, in-browser.
Explore all Developer Tools.