Chmod Calculator: Linux File Permissions Made Easy (Free Online Tool)
The chmod command (short for "change mode") controls who can read, write, and execute files on Linux and Unix systems. Getting permissions wrong can lock you out of your own files or, worse, expose sensitive data to every user on the server. The FindUtils Chmod Calculator lets you visually toggle permission bits and instantly see both the numeric (octal) and symbolic representations — no terminal memorization required.
This guide explains how Linux file permissions work, walks you through the calculator step by step, and covers the most common permission values you will encounter in real-world server administration.
How Linux File Permissions Work
Every file and directory on a Linux system has three permission sets assigned to three user classes:
- Owner (u) — The user who created the file
- Group (g) — Users belonging to the file's assigned group
- Others (o) — Everyone else on the system
Each class can be granted three types of access:
| Permission | Symbol | Numeric Value | Effect on Files | Effect on Directories |
|---|---|---|---|---|
| Read | r | 4 | View file contents | List directory contents |
| Write | w | 2 | Modify file contents | Create/delete files inside |
| Execute | x | 1 | Run as program | Enter (cd into) directory |
The numeric value for each class is the sum of its granted permissions. For example, read + write = 4 + 2 = 6. A complete permission set combines three digits: one for owner, one for group, one for others.
So chmod 644 means: owner gets read+write (6), group gets read (4), others get read (4). The symbolic equivalent is rw-r--r--.
How to Use the Chmod Calculator
Step 1: Open the Tool
Navigate to the FindUtils Chmod Calculator. You will see a permission grid with checkboxes for Read, Write, and Execute across Owner, Group, and Others.
Step 2: Set Permissions Visually
Click the checkboxes to toggle individual permissions. For example, to set 755:
- Owner: Check Read, Write, and Execute
- Group: Check Read and Execute
- Others: Check Read and Execute
The calculator updates the numeric value and symbolic string in real time as you click.
Step 3: Use Numeric Input
If you already know the octal number, type it directly into the numeric field. The grid updates automatically to reflect the permission bits. This is useful when you find a chmod value in documentation or a Stack Overflow answer and need to verify what it actually grants.
Step 4: Copy the Command
The calculator generates the complete chmod command ready to paste into your terminal. Copy it with one click and run it on your server.
Step 5: Try Common Presets
Select from built-in presets for standard use cases like web server files (644), scripts (755), or private keys (600). Each preset updates the grid and explains when to use that particular permission set.
Common Chmod Values Reference Table
This table covers the permission values you will use most often in day-to-day Linux administration:
| Numeric | Symbolic | Owner | Group | Others | Common Use Case |
|---|---|---|---|---|---|
| 644 | rw-r--r-- | Read, Write | Read | Read | HTML files, CSS, images, config files |
| 755 | rwxr-xr-x | Read, Write, Execute | Read, Execute | Read, Execute | Scripts, CGI programs, directories |
| 777 | rwxrwxrwx | All | All | All | Temporary debug only (never in production) |
| 600 | rw------- | Read, Write | None | None | SSH private keys, .env files |
| 700 | rwx------ | Read, Write, Execute | None | None | Private scripts, home directories |
| 400 | r-------- | Read | None | None | SSL certificates, read-only secrets |
| 750 | rwxr-x--- | Read, Write, Execute | Read, Execute | None | Shared team scripts |
| 664 | rw-rw-r-- | Read, Write | Read, Write | Read | Collaborative files (group can edit) |
Use the Chmod Calculator to verify any value before applying it to your server.
Understanding Special Permission Bits
Beyond the standard read/write/execute permissions, Linux supports three special bits that the FindUtils chmod calculator also handles:
SUID (Set User ID) — Octal 4xxx
When set on an executable, SUID makes the program run with the permissions of the file's owner rather than 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.
Symbolic notation: rws instead of rwx in the owner position.
SGID (Set Group ID) — Octal 2xxx
When set on a directory, SGID forces new files created inside to inherit the directory's group rather than the creating user's primary group. This is essential for shared project directories where multiple team members need group-level access.
Symbolic notation: rws or rwS in the group position.
Sticky Bit — Octal 1xxx
When set on a directory, the sticky bit prevents users from deleting files they do not own, even if they have write access to the directory. The /tmp directory uses this — everyone can create files, but only the owner of each file can delete it.
Symbolic notation: rwt or rwT in the others position.
In the calculator, toggle these special bits to see how they change the four-digit octal output (e.g., 1755 for sticky bit + standard directory permissions).
Numeric vs. Symbolic: When to Use Each
The chmod command accepts permissions in two formats. Both achieve the same result, but each has advantages depending on the situation.
Numeric (Octal) Mode
chmod 755 script.sh
Best when you want to set all permissions at once to a known value. It is concise and unambiguous. Most documentation, tutorials, and hosting panels reference octal values.
Symbolic Mode
chmod u+x script.sh chmod g-w config.php chmod o= secret.key
Best when you want to modify specific bits without affecting the rest. Adding execute permission to the owner (u+x) does not change group or others permissions. This is safer for incremental changes on production servers.
The FindUtils Chmod Calculator shows both formats simultaneously so you can learn the relationship between them.
Real-World Permission Scenarios
Web Server Files
For Apache or Nginx serving static content, the standard setup is:
- Files:
644(owner reads/writes, web server reads) - Directories:
755(owner full access, web server can traverse) - Uploads folder:
755for the directory,644for uploaded files
Never use 777 on a web server. It allows any user on the system to modify your files, which is a critical security vulnerability.
SSH Keys
SSH enforces strict permission requirements. If your private key file has permissions that are too open, SSH will refuse to use it:
- Private key (
id_rsa):600— only the owner can read/write - Public key (
id_rsa.pub):644— anyone can read, only owner writes - ~/.ssh directory:
700— only the owner can access
If you get the error "Permissions 0644 are too open" for a private key, run chmod 600 ~/.ssh/id_rsa to fix it.
Shared Team Projects
When a development team shares a project directory:
chmod 2775 /var/www/project # SGID + rwxrwxr-x chmod 664 /var/www/project/* # rw-rw-r-- for files
The SGID bit ensures new files inherit the project group, so all team members retain access without manual chown commands.
Common Chmod Mistakes and Security Risks
Mistake 1: Using chmod 777 in Production
Setting 777 gives every user full control. On a shared hosting environment, other users on the same server can read your database credentials, inject malicious code, or delete your files. Always use the minimum permissions necessary.
Mistake 2: Applying File Permissions to Directories
Directories need execute (x) permission for users to cd into them. Setting a directory to 644 (no execute) makes it inaccessible even though the contents are readable in theory. Directories should typically be 755 or 700.
Mistake 3: Forgetting Recursive Application
Running chmod 755 * only affects files in the current directory. For nested directories, use the recursive flag:
chmod -R 755 /var/www/html/
But be careful — this sets the same permissions on both files and directories. A safer approach separates them:
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;Mistake 4: Ignoring Ownership
Permissions only matter relative to ownership. A file owned by root with 644 permissions means regular users can only read it. Before adjusting chmod, verify ownership with ls -la and adjust with chown if needed.
Mistake 5: Not Testing Before Applying
Always verify a chmod value using the Chmod Calculator before running it on a production server. A typo in an octal value can lock you out of critical files or expose sensitive data.
FindUtils Chmod Calculator vs. Alternatives
| Feature | FindUtils (Free) | chmod-calculator.com | chmodcommand.com | Terminal (manual) |
|---|---|---|---|---|
| Visual permission grid | Yes | Yes | Yes | No |
| Numeric to symbolic conversion | Yes | Yes | Yes | Manual lookup |
| Symbolic to numeric conversion | Yes | Limited | Yes | Manual math |
| SUID/SGID/Sticky bit support | Yes | No | Yes | Yes |
| Common presets | Yes | No | Limited | No |
| Command output ready to copy | Yes | Yes | Yes | N/A |
| No signup required | Yes | Yes | Yes | N/A |
| Works offline (client-side) | Yes | No | No | Yes |
| Privacy (no data sent to server) | Yes | Unclear | Unclear | Yes |
All calculations on FindUtils happen entirely in your browser. No permission values, file paths, or server details are transmitted to any backend. This makes it suitable for use with production infrastructure where you do not want to leak server configuration to third-party services.
Using chmod with Other Developer Tools
File permissions are one piece of the Linux administration puzzle. FindUtils offers several related tools for developers working with servers:
- Regex Tester — Validate regex patterns for log parsing,
findcommands, or permission auditing scripts - Unix Timestamp Converter — Convert between Unix timestamps and human-readable dates when checking file modification times with
stat - Base64 Encoder/Decoder — Encode configuration files or credentials that need to be embedded in deployment scripts
- Cron Expression Generator — Build cron schedules for automated permission auditing or backup scripts
- JSON Formatter — Format API responses or configuration files when managing server deployments
These tools all run client-side in your browser with no data leaving your machine, matching the same privacy-first approach as the chmod calculator.
FAQ
Q1: What does chmod 644 mean?
Chmod 644 sets the file so the owner can read and write (6 = 4+2), while the group and all other users can only read (4). In symbolic notation this is rw-r--r--. It is the standard permission for web content files like HTML, CSS, and images served by Apache or Nginx.
Q2: What is the difference between chmod 755 and chmod 644?
The difference is the execute bit. Chmod 755 (rwxr-xr-x) allows the owner to execute the file and lets group/others read and execute it. Chmod 644 (rw-r--r--) has no execute permission for anyone. Use 755 for scripts and directories, 644 for regular files that should not be executable.
Q3: Is chmod 777 dangerous?
Yes. Chmod 777 gives every user on the system full read, write, and execute access. On shared hosting or multi-user servers, this means any user can read your database passwords, modify your code, or delete your files. Use 777 only temporarily for debugging on isolated development machines, and revert immediately.
Q4: How do I convert symbolic permissions to numeric?
Add the values for each permission in each class: read (4) + write (2) + execute (1). For example, rwxr-xr-- breaks down as: owner = 4+2+1 = 7, group = 4+0+1 = 5, others = 4+0+0 = 4. The numeric value is 754. The FindUtils Chmod Calculator does this conversion instantly.
Q5: What permissions should I set for SSH keys?
Private keys (id_rsa, id_ed25519) must be 600 (owner read/write only). Public keys should be 644. The ~/.ssh directory itself needs 700. SSH will refuse to use a private key with permissions looser than 600 and will display a "Permissions are too open" error.
Q6: What is the sticky bit and when should I use it?
The sticky bit (octal 1xxx) prevents users from deleting files they do not own inside a shared directory. It is most commonly used on /tmp and shared upload directories. Set it with chmod 1777 /tmp or chmod +t /tmp. In the FindUtils calculator, toggle the Sticky Bit checkbox to see how it affects the four-digit octal output.
Q7: How do I apply different permissions to files and directories recursively?
Do not use a single recursive chmod for both. Instead, run two separate find commands: find /path -type d -exec chmod 755 {} \; for directories and find /path -type f -exec chmod 644 {} \; for files. This ensures directories remain traversable while files stay non-executable.
Tools Used
- Chmod Calculator — Visual permission grid with numeric and symbolic conversion
- Regex Tester — Test patterns for permission auditing scripts
- Unix Timestamp Converter — Convert file timestamps from
statoutput - Base64 Encoder/Decoder — Encode credentials for deployment scripts
- Cron Expression Generator — Schedule automated permission checks
- JSON Formatter — Format server configuration responses