← Back to Dev Tools

This free chmod calculator helps you work out Linux and Unix file permissions without doing the octal math by hand. Tick the read, write, and execute boxes for owner, group, and others, and the tool instantly builds the matching octal code (like 755 or 644), the symbolic notation you'd see in ls -la (like rwxr-xr-x), and a full chmod command you can copy straight into your terminal. It also flags risky combinations — like world-writable files or a bare 777 — so you don't accidentally open up a production server.

Type any 3-digit octal (0–7 each digit).
Updates checkboxes and output live.
Entity
Read (r) +4
Write (w) +2
Execute (x) +1
Owner
u (user)
Group
g
Others
o (world)
Owner
6
rw-
Group
4
r--
Others
4
r--
Octal
644
Symbolic
rw-r--r--
chmod command
chmod 644 /var/www/html/index.php
ls -la representation
-rw-r--r-- 1 user group 4096 May 23 10:00
🔒

Fully Private

Everything runs in your browser. No file paths, permissions, or server data are ever transmitted or logged.

Instant Results

Octal, symbolic notation, and the terminal command update live as you click — no "calculate" button, no waiting.

💸

Completely Free

No signup, no paywall, no limits. Use it as often as you like for as many servers or files as you manage.

🛡️

Built-In Security Checks

Automatically warns you about world-writable files, open 777 permissions, and other common misconfigurations.

📴

Works Offline

Since it's 100% client-side JavaScript, it keeps working even without an internet connection once the page loads.

How to Use the Chmod Calculator

Four ways to get a permission code — pick whichever fits how you think.

  1. Start from a presetClick a common preset like 644, 755, or 600 to instantly load a standard, safe permission pattern for that use case.
  2. Or check boxes manuallyTick Read, Write, and Execute for Owner, Group, and Others individually to build a fully custom permission set from scratch.
  3. Or type octal directlyAlready know the number you want? Type any 3-digit octal code (0–7 per digit) into the octal input and the checkboxes sync automatically.
  4. Set your file pathEnter the file or directory path you're changing permissions on, so the generated command is ready to paste as-is.
  5. Toggle recursive if neededCheck the -R box when applying permissions to a whole directory and everything inside it.
  6. Copy and runHit COPY on the chmod command or the ls -la preview, then paste it directly into your SSH terminal.

Who Uses a Chmod Calculator?

Anyone who touches a Linux, macOS, or Unix filesystem eventually needs to set permissions correctly.

Web developers — setting file/folder permissions on shared or VPS hosting System administrators — auditing and hardening server permissions DevOps & SRE engineers — scripting deployments and Docker images Students & self-taught coders — learning how Unix permissions work WordPress / CMS site owners — fixing "permission denied" errors SSH & security-conscious users — locking down private keys and config files

Common Chmod Examples

Real-world permission codes and when to use each one.

Octal Symbolic Typical Use Case
644rw-r--r--Static web files — HTML, CSS, JS, images, config files that shouldn't run as code
755rwxr-xr-xWeb directories, shell scripts, and CGI/PHP-CLI files that others need to execute or list
600rw-------SSH private keys, .env files, and other secrets only the owner should touch
700rwx------Personal scripts and private directories, like ~/.ssh
664rw-rw-r--Files shared for editing among a trusted team/group, read-only to the world
775rwxrwxr-xShared deployment directories where a group needs full write and execute access
640rw-r-----Config or log files readable by a trusted group, hidden from everyone else
444r--r--r--Immutable reference files nobody should be able to write to, including the owner
777rwxrwxrwx⚠ Full open access — almost never appropriate on a live server; avoid in production

Linux File Permission Reference

Understanding Unix permissions prevents security holes and broken deployments. Here's what you need to know.

How octal works

Each digit (0–7) represents one entity's permissions. r=4, w=2, x=1 — add them up. So 6 = read+write, 5 = read+execute, 7 = all three.

755 vs 644

755 — owner can read/write/execute; group and others can read/execute. Use for web directories and shell scripts. 644 — owner read/write; everyone else read-only. Use for static web files.

Never use 777

chmod 777 lets anyone on the server read, write, and execute the file. This is a critical security risk on shared hosts and any server exposed to the web.

Recursive flag -R

Use chmod -R 755 /path/dir to apply permissions to a directory and all its contents. Toggle the -R checkbox above to include it in the generated command.

SSH / private keys

SSH requires your private key to be 600 (owner read/write only). If permissions are too open, SSH will refuse to use the key entirely.

Symbolic notation

The 9-character string like rwxr-xr-x is what you see in ls -la. First 3 = owner, middle 3 = group, last 3 = others. A dash (-) means that permission is off.

What does the "d" or "-" mean in ls -la?

The very first character in ls -la output shows the file type, not a permission — d means directory, - means regular file, and l means symbolic link. The nine characters after it are the actual permissions.

Why does execute (x) matter for directories?

On a directory, execute permission controls whether a user can enter it or access files inside, not "run" it. Without x, even a directory that's readable can't be traversed with cd.

chmod vs chown — what's the difference?

chmod changes what actions are allowed (read/write/execute). chown changes who owns the file (which user and group it belongs to). This calculator only covers permissions, not ownership.

Can I use symbolic mode instead of octal?

Yes — commands like chmod u+x file.sh or chmod go-w file.sh add or remove specific permissions symbolically. This tool focuses on absolute octal/symbolic values, which are easier to reason about and script.

Does this tool actually change permissions on my server?

No. It only calculates the values and generates the command text — it never connects to any server. You copy the generated command and run it yourself over SSH or in your local terminal.