AI Chmod Calculator — Unix Permissions Made Easy
You just deployed your web application and nothing works. The logs say "Permission denied." You SSH into the server and start guessing: chmod 777 everything. It works, but now your security team is sending you angry messages. The problem was never complicated — you just needed chmod 755 for directories and chmod 644 for files. But in the moment, with production down, who can remember what those numbers mean?
A chmod calculator eliminates the guesswork. Click the permissions you want, get the numeric code. Enter a numeric code, see exactly what it allows. No more memorizing octal values or decoding drwxr-xr-x from ls -la output.
Understanding Unix File Permissions
Every file and directory on a Unix-like system (Linux, macOS, BSD) has three sets of permissions for three categories of users:
- Owner (u) — the user who owns the file
- Group (g) — users in the file's group
- Others (o) — everyone else
Each category can have three types of access:
- Read (r) — view file contents or list directory entries
- Write (w) — modify file contents or create/delete files in a directory
- Execute (x) — run the file as a program or enter a directory
This gives you a 3×3 matrix of permissions. The ls -la command displays them as a 10-character string like -rwxr-xr--, where the first character indicates the file type and the remaining nine show the permission matrix.
Numeric (Octal) Notation
Each permission has a numeric value: read = 4, write = 2, execute = 1. Add them together for each category. So rwx = 4+2+1 = 7, r-x = 4+0+1 = 5, and r-- = 4+0+0 = 4. The full permission is three digits: 754 means owner gets rwx, group gets r-x, others get r--.
This is where most people get confused. The mapping between chmod 644 and "owner can read and write, everyone else can only read" is not immediately obvious unless you have internalized the octal system. A chmod calculator makes this translation instant.
Symbolic Notation
The chmod command also accepts symbolic notation, which is more readable but longer to type:
# Numeric: chmod 755 script.sh
# Symbolic equivalent:
chmod u=rwx,g=rx,o=rx script.sh
# Add execute for owner only:
chmod u+x script.sh
# Remove write from group and others:
chmod go-w file.txt
# Set read-only for everyone:
chmod a=r document.pdf
Symbolic notation is great for making relative changes (add or remove specific permissions) while numeric notation is better for setting absolute permissions. Both have their place, and a good unix permissions tool converts between them seamlessly.
Common Permission Patterns Every Developer Should Know
You do not need to memorize every possible combination. These cover 90 percent of real-world scenarios:
Files
644(rw-r--r--) — Standard files. Owner can edit, everyone can read. Use for HTML, CSS, images, config files.600(rw-------) — Private files. Only the owner can read or write. Use for SSH keys,.envfiles, database credentials.755(rwxr-xr-x) — Executable files. Owner has full control, everyone can run it. Use for scripts, binaries, CLI tools.400(r--------) — Read-only, owner only. SSH requires this for private keys:chmod 400 ~/.ssh/id_rsa.
Directories
755(rwxr-xr-x) — Standard directories. Owner can modify contents, everyone can list and enter. Use for web roots, project folders.700(rwx------) — Private directories. Only the owner can access. Use for~/.ssh, personal config directories.775(rwxrwxr-x) — Group-writable directories. Owner and group members can modify. Use for shared project directories.1777(drwxrwxrwt) — Sticky bit. Everyone can write, but only file owners can delete their own files. This is how/tmpworks.
📐 Stop guessing chmod values. Calculate exact permissions in seconds.
Open AI Chmod Calculator →Special Permissions: Setuid, Setgid, and Sticky Bit
Beyond the basic rwx permissions, Unix has three special permission bits that most developers encounter but few fully understand:
Setuid (4xxx)
When set on an executable, the program runs with the permissions of the file owner, not the user who launched it. The classic example is /usr/bin/passwd, which needs root access to modify /etc/shadow but must be runnable by any user. You will see an s in the owner execute position: -rwsr-xr-x.
# Set setuid:
chmod 4755 program
chmod u+s program
# The passwd command is a real-world example:
ls -la /usr/bin/passwd
# -rwsr-xr-x 1 root root 68208 ... /usr/bin/passwd
Setgid (2xxx)
On executables, setgid works like setuid but for the group. On directories, it is far more useful: new files created inside a setgid directory inherit the directory's group instead of the creator's primary group. This is essential for shared project directories where multiple users need to collaborate.
# Create a shared project directory:
mkdir /var/www/project
chgrp developers /var/www/project
chmod 2775 /var/www/project
# Now any file created inside inherits the "developers" group
Sticky Bit (1xxx)
The sticky bit on a directory prevents users from deleting files they do not own, even if they have write permission on the directory. Without it, anyone with write access to a directory can delete any file in it. The /tmp directory uses this to let everyone create temporary files without letting them delete each other's files.
ls -la / | grep tmp
# drwxrwxrwt 20 root root 4096 ... tmp
# The "t" at the end indicates the sticky bit
Common Permission Mistakes and How to Avoid Them
The chmod 777 Anti-Pattern
When something does not work, the temptation is to chmod 777 everything. This gives full read, write, and execute permissions to every user on the system. It fixes the immediate problem but creates serious security vulnerabilities. Any user or compromised process can modify or execute your files.
Instead of 777, diagnose the actual problem:
- Check which user the process runs as:
ps aux | grep nginx - Check the file ownership:
ls -la /var/www/ - Set the minimum permissions needed. Usually
755for directories and644for files, with the web server user as the owner.
Forgetting Directory Execute Permission
A common confusion: why does a directory need execute permission? On directories, execute means "traverse" — the ability to cd into the directory and access files inside it. A directory with read but no execute (r--) lets you list filenames but not access the files themselves. You almost always want execute on directories.
SSH Key Permissions
SSH is notoriously strict about permissions. If your key files are too permissive, SSH refuses to use them:
# Required permissions:
chmod 700 ~/.ssh # Directory: owner only
chmod 600 ~/.ssh/config # Config: owner read/write
chmod 400 ~/.ssh/id_rsa # Private key: owner read only
chmod 644 ~/.ssh/id_rsa.pub # Public key: everyone can read
chmod 600 ~/.ssh/authorized_keys # Auth keys: owner read/write
Getting any of these wrong results in cryptic "Permission denied (publickey)" errors that waste hours of debugging time.
Using chmod Recursively
The -R flag applies permissions recursively, but applying the same permissions to both files and directories is usually wrong. Directories need execute permission; files usually do not. Use find to apply different permissions:
# Set directories to 755:
find /var/www -type d -exec chmod 755 {} \;
# Set files to 644:
find /var/www -type f -exec chmod 644 {} \;
# Make specific scripts executable:
find /var/www/scripts -name "*.sh" -exec chmod 755 {} \;
This is the correct way to fix permissions on a web server. Never use chmod -R 755 on a directory containing both files and subdirectories unless you specifically want every file to be executable.
How Our AI Chmod Calculator Helps
The Lifa AI Chmod Calculator provides a visual interface for Unix permissions. Click checkboxes for each permission, and the numeric code updates in real time. Enter a numeric code, and the checkboxes reflect the permissions. It handles special bits (setuid, setgid, sticky) and generates both the chmod command and the symbolic representation.
The AI component goes further. Describe your scenario in plain English — "web server config file that only root should edit" — and it suggests the appropriate permissions with an explanation of why. It warns you about common security mistakes and suggests best practices for your specific use case.
Everything runs locally in your browser. No server calls, no data collection, no signup. Just fast, accurate unix permissions calculations.
🛠️ Calculate chmod permissions visually — free, instant, and secure.
Try the AI Chmod Calculator →Related Tools
- AI Hash Generator — generate MD5, SHA-256, and other hashes for file integrity checks
- AI Password Generator — create strong passwords with cryptographic randomness
- AI Base64 Encoder/Decoder — encode and decode Base64 strings and JWT tokens
- Guide: Hash Algorithms Explained — understand when to use MD5, SHA-256, and beyond