The Problem
You're about to deploy a script. You know you need the file executable, but readable only by the owner. You type chmod 754... or was it 744? Maybe 755?
You Google it. You find a Stack Overflow thread from 2011. You get it wrong anyway.
chmod's octal notation is one of those things every Linux user has to look up every single time ā and the mental model for why 755 means what it means isn't obvious unless you've memorized the bit table.
I built a tool to fix that permanently.
The Tool: chmod Permissions Builder
š bashsnippets.xyz/tools/chmod-permissions-builder.html
It's a free, no-login, browser-based tool. You click checkboxes for Owner, Group, and Others ā read, write, execute ā and it instantly generates:
- The
chmodoctal command (chmod 755 filename) - The symbolic command (
chmod u=rwx,g=rx,o=rx filename) - A plain-English explanation of what those permissions mean
No ads walls. No email required. Copy and go.
How chmod Permissions Actually Work
Before we get to the tool output, here's the bit math that makes it click once:
Each permission set (owner / group / others) is a 3-bit binary number:
| Permission | Binary | Octal |
|---|---|---|
--- |
000 | 0 |
--x |
001 | 1 |
-w- |
010 | 2 |
-wx |
011 | 3 |
r-- |
100 | 4 |
r-x |
101 | 5 |
rw- |
110 | 6 |
rwx |
111 | 7 |
So chmod 755 means:
-
7 = owner gets
rwx(read + write + execute) -
5 = group gets
r-x(read + execute, no write) -
5 = others get
r-x
That's it. Once you see it as binary, it's never confusing again. The tool builds this table live as you click.
Common Permission Combos
Here are the most-used values and what they're for:
chmod 755 script.sh # Executable script ā owner can edit, others can run
chmod 644 config.conf # Config file ā owner can edit, others read-only
chmod 600 .ssh/id_rsa # Private key ā owner only, no one else
chmod 777 /tmp/shared # Fully open (use sparingly, never on production)
chmod 700 ~/scripts/ # Private directory ā owner only
How to Apply Permissions Recursively
The builder outputs a single-file command. If you need to apply permissions across a whole directory:
# Apply 755 to all directories, 644 to all files
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
Or use the -R flag (with care):
chmod -R 755 /var/www/html
ā ļø Never run
chmod -R 777on anything outside a throw-away sandbox. It removes all security boundaries.
Check Current Permissions Fast
Before changing anything, inspect what's there:
ls -la filename # Single file
stat filename # Verbose output including octal
ls -la /path/to/dir/ # Directory listing
stat shows you the octal directly ā useful when you need to replicate permissions from one file to another:
stat -c "%a" filename # Just the octal number
Try the Tool
If you set the wrong permissions on a web server config or SSH key, things break in ways that are slow to debug. Getting it right the first time matters.
ā Open the chmod Permissions Builder
No login. No install. Works on mobile too.
More free tools and copy-paste bash scripts at bashsnippets.xyz
Top comments (0)