DEV Community

Anguishe
Anguishe

Posted on • Originally published at bashsnippets.xyz

Stop Guessing 'chmod' I Built a Free Visual Permissions Builder for Linux

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 chmod octal 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
Enter fullscreen mode Exit fullscreen mode

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 {} \;
Enter fullscreen mode Exit fullscreen mode

Or use the -R flag (with care):

chmod -R 755 /var/www/html
Enter fullscreen mode Exit fullscreen mode

āš ļø Never run chmod -R 777 on 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)