ALL DEVELOPER TOOLS56
Chmod Calculator
Chmod Calculator — Octal, Symbolic & Special Bits
Convert between the checkbox grid, the octal number and the rwx string, and copy the chmod command to run.
About Chmod Calculator
Unix file permissions are twelve bits, and the three ways of writing them — a checkbox grid, an octal number like 755, and a string like rwxr-xr-x — are the same twelve bits in different clothes. This calculator keeps all three live-linked in both directions: tick a box and the octal changes, type an octal and the boxes move, paste the permission column out of ls -l and everything else follows. It handles the special bits properly. setuid, setgid and the sticky bit sit above the nine permission bits, and ls renders them by overloading the execute column with s, S, t or T, where the capital form means the bit is set and the execute bit under it is not — so the bit is stored and does nothing. That distinction is the thing most calculators get wrong, and it is tested here against real chmod. You get both commands to run: the absolute chmod 755 file and the symbolic chmod u=rwx,go=rx file. The page also spells out what execute means on a directory — traverse rather than run — which is the confusion behind most permission problems.
Questions
Why does my symbolic string show a capital S instead of an s?
Because the special bit is set and the execute bit under it is not. ls overloads the execute column: with setuid on and owner-execute on you get s, with setuid on and owner-execute off you get S. The capital is a warning rather than a variant spelling — mode 4644 stores the setuid bit and there is no program there to run as the owner, so the bit does nothing at all. The same rule applies to setgid in the group column and to the sticky bit in the other column, where the two letters are t and T. Ticking the matching execute box turns the capital back into lower case.
I set 644 on a folder and now nothing inside it opens.
Execute on a directory does not mean run, it means traverse. Without it nothing can resolve a path through the directory, so every file inside becomes unreachable no matter what its own mode says. Read without execute lets you list the names and open none of them; execute without read lets you open a file whose name you already know and refuses to tell you what is in there. Directories almost always want 755 or 700. Switch the APPLIES TO control to A directory and the sentences under the grid change to the directory meaning of each bit.
Why does the symbolic command say +t on its own instead of o+t?
Because o+t does not work. POSIX gives the t permission effect only when the who-list is a or is omitted, and BSD chmod follows that literally: chmod u=rwx,go=rx,o+t file leaves the sticky bit unset, while chmod u=rwx,go=rx,+t file sets it. That was measured against real chmod rather than assumed. The s permission behaves differently — it does take effect from a u or g who-list, which is why setuid comes out as u=rwxs. It is also why the command splits u=, g= and o= apart whenever a special bit is set: an s on a merged ug= clause would set setuid and setgid together.
Should I just use 777 to fix a permissions problem?
No, and it usually does not fix it. 777 means every account on the machine can modify the file, or delete anything in the directory, and a lot of software actively refuses to work with it: ssh ignores a private key or a .ssh directory that is group- or world-writable, cron skips world-writable crontabs, and several sudo and PHP-FPM configurations check the same thing. When 777 appears to help, the real problem was almost always ownership, or a missing execute bit on a parent directory. For a genuinely shared directory you want 1777 or 2775, and both are in the preset row.
Does this actually change permissions on my files?
No. Nothing here touches a filesystem. It is arithmetic over twelve bits plus two strings to copy, and the path you type into PATH IN THE COMMAND is only ever pasted into the two commands shown — nothing reads it, opens it, or runs anything. You copy the command and run it yourself, which also means you get to read it before you do. Nothing is sent anywhere either: the whole calculator is a few hundred lines of JavaScript that ship with the page and run in this tab.
Is my file uploaded to a server?
No. Transmute processes everything locally in your browser using JavaScript and WebAssembly. Your files never leave your device — there is no server, no upload, no cloud processing.