Chmod Calculator

Calculate Linux file permissions visually: toggle read, write, and execute for owner, group, and others to get the octal code, symbolic notation, and chmod command.

runs locally on your browser. Your data never leaves your device.
Octal

644

Symbolic

-rw-r--r--

WhoReadWriteExecuteOctal
Owner
The file's creator/assigned user
6
Group
Members of the file's assigned group
4
Others
Everyone else on the system
4

Special Permissions (Optional)

Command
chmod 644 yourfile

Common Use Cases

Work out the exact octal code for a new deployment script or config file before running chmod on a server
Decode an unfamiliar permission value like 750 or 4755 found in a Dockerfile, README, or legacy shell script
Understand what setuid, setgid, or the sticky bit change about a file before applying them
Generate a ready-to-copy chmod command, including -R for a whole directory tree

About Chmod Calculator

Linux and Unix-like systems control access to every file and directory with a permission set: what the owner can do, what the owning group can do, and what everyone else can do. Each of those three groups can independently be granted read, write, and execute access, and the whole set is usually written as a three-digit octal code like 755 or 644, or as a ten-character symbolic string like -rwxr-xr-x, the same format shown by ls -l. Converting between "what I want to allow" and "what number do I type" is the exact conversion this tool automates.

Toggle read, write, and execute independently for the owner, group, and others using the checkbox grid, and the octal code, full symbolic notation, and a ready-to-run chmod command update instantly, so there's nothing to calculate by hand, no need to remember that read is 4, write is 2, and execute is 1. The three less-common special permission bits (setuid, setgid, and the sticky bit) are also supported, each with a plain-English explanation of what it actually does, since they change how the execute bit is displayed (an s or t instead of x) and are easy to get backwards from memory.

Already have a permission code and just need to understand it? Paste an octal value like 750 or a symbolic string like rwxr-x--- into the decode box and the checkboxes update to match, so you can read off exactly what access that code grants before running it against a real file. A row of common presets (755, 644, 700, 600, 777, and more) covers the permission sets used most often for scripts, config files, private keys, and shared directories.

Every calculation happens with plain JavaScript directly in your browser. No file is uploaded, no path or filename you type is transmitted anywhere, and the tool works identically offline; it's a calculator, not a file management service.

Frequently Asked Questions

How do I convert permission checkboxes into a single octal number like 755?
Each of the three permissions (read, write, execute) has a fixed value: read is 4, write is 2, execute is 1. Add up the values that are checked for a group to get that group's digit: read+write+execute = 4+2+1 = 7, read+execute (no write) = 4+1 = 5, read only = 4. The three digits, in order, are owner, group, then others, so 755 means the owner has read+write+execute (7), and the group and others both have read+execute (5). This tool adds them up for you as you toggle each box, so you never need to do the arithmetic by hand.
What's the difference between the octal code and the symbolic notation?
They describe the exact same permissions in two different formats. The octal code (e.g. 755) is three digits, one per group, and is what you normally type into chmod. The symbolic notation (e.g. -rwxr-xr-x) is the ten-character string ls -l prints next to every file: a leading character for the file type, then three characters each for owner, group, and others, where r/w/x mean the permission is granted and a dash means it isn't. This tool shows both at the same time so you can cross-check one against the other.
What do setuid, setgid, and the sticky bit actually do?
Setuid, when set on an executable file, makes it run with the file owner's identity rather than the identity of whoever launched it (this is how the passwd command lets ordinary users update a file only root can normally write). Setgid does the same for the group identity, and on a directory it also makes new files created inside inherit that directory's group instead of the creator's default group. The sticky bit, almost always used on shared directories like /tmp, stops any user from deleting or renaming files they don't own, even if the directory itself is writable by everyone. Each of the three shows up in symbolic notation as a lowercase or uppercase s or t in place of the usual x.
Why does the execute character sometimes show as a capital S or T instead of lowercase?
A lowercase s or t means both the special bit (setuid/setgid/sticky) and the regular execute bit are set for that group. A capital S or T means the special bit is set but the underlying execute bit is not, which is unusual and often a mistake, since setuid/setgid have no effect on a file that isn't executable in the first place. Toggling execute off while a special bit is on will switch the letter's case here so you can spot that combination before applying it.
Can I paste in a permission code I already have and see what it means?
Yes. Use the decode box to paste either an octal code (e.g. 644 or 4755) or a symbolic string (e.g. rw-r--r-- or -rwsr-xr-x), and the checkboxes, octal output, and symbolic output all update to match as soon as a valid, complete value is recognised. This is the fastest way to answer 'what does this permission code actually allow?' for a value you found in a script, a Dockerfile, or a server's file listing.
Is anything I type here sent to a server?
No. This tool runs entirely as JavaScript in your browser tab: the permission toggles, the decode box, and the target path field are all local state that never leaves your device, and nothing is uploaded, logged, or stored anywhere, on this or any other page of the site.