Chmod Calculator
Convert chmod permissions between octal (e.g. 755) and symbolic (rwxr-xr-x) form. Toggle read/write/execute checkboxes for owner, group, and other. Free, runs in your browser.
Owner (User)
Group
Other (World)
Special bits
chmod 0644 <file>find . -type f -exec chmod 0644 {} \;What this does
Calculates Unix/Linux file permissions in both octal (644) and symbolic (rw-r--r--) form. Toggle the read/write/execute checkboxes for owner, group, and other (world) — both representations update live. Or paste an octal value and the checkboxes flip to match.
The output also gives you the exact chmod command to run, plus a recursive find variant that’s safer than chmod -R for mixed file/directory trees (you almost always want different perms on directories vs files — typically 755 on dirs and 644 on files).
Why two formats exist
Octal (644, 755, 777) is compact but opaque if you don’t have the bit math memorized. Symbolic (rwxr-xr-x) is readable but verbose and harder to type. Both encode the same nine bits — read/write/execute for owner, group, and other — plus three special bits (setuid, setgid, sticky).
The math: read = 4, write = 2, execute = 1. Add them up per role. Owner can read+write = 4+2 = 6. Group can read = 4. Other can read = 4. Result: 644.
What 644, 755, 600, 700, 777 actually mean
- 644 — owner reads/writes, everyone else reads only. Default for files: source code, configs, HTML.
- 755 — owner full access, everyone else can read and execute. Default for directories and executables.
- 600 — owner reads/writes, no one else has any access. SSH private keys, secrets.
- 700 — owner full access, no one else has any access. SSH config dirs (
~/.ssh). - 777 — everyone has full access. Almost always wrong. Use only for
/tmpand shared scratch directories. If you’re typing this to “fix permissions”, you almost certainly want 755 or 600. - 400 — owner read-only. Useful for read-only secrets the owner shouldn’t accidentally modify.
Special bits, briefly
- setuid (4xxx): when an executable runs, it runs as the file’s owner instead of the user invoking it.
passwduses this so non-root users can edit/etc/shadow. Dangerous on writable binaries. - setgid (2xxx): on executables, runs as the file’s group. On directories, new files inherit the directory’s group instead of the creator’s primary group. Common on shared team directories.
- sticky (1xxx): only the file’s owner can delete or rename files in the directory, even if others have write access.
/tmpis the canonical example — you can write to/tmpbut you can’t delete other users’ files.
Common mistakes this tool catches
- Confusing 644 with 0644. They’re the same. The leading zero just denotes octal in C-style notation. Either works in
chmod. - Octal 777 vs 7777. Plain
777isrwxrwxrwx;7777adds setuid + setgid + sticky on top. Big difference. chmod -R 777on a project directory. Makes every script executable and every config world-writable. Use the find variant:find . -type f -exec chmod 644 {} \;thenfind . -type d -exec chmod 755 {} \;.
Privacy
The tool runs entirely in your browser. No values leave your machine.