chmod calculator
Octal, symbolic and checkboxes stay in sync — change any one and the other two
update immediately. Includes setuid, setgid and sticky bits, and a separate
calculator for applying a chmod expression like u+x to a starting
mode. Runs entirely in your browser.
| Read | Write | Execute | Special | |
|---|---|---|---|---|
| Owner | ||||
| Group | ||||
| Other |
Enter a starting mode and an expression.
About this tool
Octal (755), symbolic (rwxr-xr-x) and the checkbox grid are three views of exactly the same permission set — change any one and the other two update immediately, including the three special bits (setuid, setgid, sticky) that a plain three-digit octal number can't represent on its own.
The second calculator answers a different, more common real question: not "what does 755 mean" but "what does chmod u+x actually change", starting from a mode you already have.
How it works
The special bits render exactly the way ls -l and chmod themselves display them: a lower-case s or t in the execute position when the special bit and the execute bit are both set, and an upper-case S or T when the special bit is set but execute is not — the classic "capital letter means something's off" signal experienced users read at a glance. 1777 (the traditional /tmp permission — world-writable with the sticky bit so users can't delete each other's files) renders as rwxrwxrwt, lower-case, because other already has execute.
The expression calculator supports the common subset of chmod's symbolic syntax: u/g/o/a for who, +/-/= for add/remove/set-exactly, and r/w/x/s/t for what, with commas chaining multiple clauses in one expression — u+x,go-w applies both.
Common questions
Why does 4644 show a capital S?
Because setuid is set but the owner has no execute permission — a real, valid, if unusual, combination. The capital letter is the standard way of flagging it, not a bug in this page.
What does a bare +x with no u/g/o do?
This page treats it as applying to all three classes — the same as a+x. Real shell chmod without an explicit class also consults your shell's umask, which this page has no concept of and does not model — see Known limitations.
Does s in an expression always mean setuid?
s sets setuid when the expression's who includes u, and setgid when it includes g — both at once if the expression includes both, e.g. ug+s.
Known limitations
No umask modellingA bare+x/+wwith no explicitu/g/ois treated as applying to all three classes outright — real shellchmodmasks that against your currentumaskfirst, which this page does not know and cannot ask for.NoRealX(capital, conditional execute)chmod'sXsets execute only if the file is a directory or already has execute set for someone — a file-system-dependent rule this page, having no file to inspect, cannot apply.An=and special bits=clause always governs read/write/execute for the stated class; ansortin the same clause is still applied additively rather than exactly replicating every real shell's edge-case behaviour here, which varies.
The same job at the command line
chmod 755 script.shOctal form — sets the mode outright.chmod u+x script.shSymbolic form — adds execute for the owner only, leaving everything else as it was.chmod -R go-w directory/Recursive: removes group and other write access through an entire directory tree.stat -c '%a %A' fileGNUstat(Linux): show a file's current mode in both octal and symbolic form.stat -f '%p' fileBSD/macOSstat: the octal mode (with extra leading digits for the file type).
More tools
See the whole toolbox — thirty-seven free tools planned, all running in your browser.