Have you ever blindly typed chmod 777 just to get a script to run, secretly hoping you didn't just open a security hole? We’ve all been there.
Linux file permissions can feel like cryptic math equations. You see strings like drwxr-xr-x or numbers like 755, and it’s easy to get lost.
In this guide, I’ll break down exactly how these permissions work, what the "4-2-1" rule means, and give you a free visual tool to calculate them instantly without the mental math.
1. Anatomy of a Permission String
When you run ls -l in your terminal, you see something like this:
-rwxr-xr--
This string isn't random. It is split into three distinct groups:
- The Owner (User): The person who created the file.
- The Group: Other users in the file's assigned group.
- The Public (Others): Everyone else on the system.
The first character (often - or d) just tells you if it's a file or a directory. The next 9 characters define the permissions for these three groups.
2. The "4-2-1" Magic Numbers
This is where the math comes in. Computers read permissions as binary, but we use an Octal (base-8) system to make it human-readable.
Each permission type has a numeric value:
- Read (r) = 4
- Write (w) = 2
- Execute (x) = 1
- No Permission (-) = 0
To get the permission number for a specific group, you simply sum these numbers.
Example Calculation
If you want the Owner to have full Read, Write, and Execute access:
4 (Read) + 2 (Write) + 1 (Execute) = 7
If you want the Group to only have Read and Execute (no editing):
4 (Read) + 0 (No Write) + 1 (Execute) = 5
3. Common Permission Codes Decoded
Now that you know the math, here are the three most common configurations you'll use as a developer:
chmod 755 (Ideal for Scripts/Directories)
- Owner (7): Can Read, Write, and Execute (4+2+1).
- Group (5): Can Read and Execute (4+0+1).
- Public (5): Can Read and Execute (4+0+1).
- Use case: Web folders or executable scripts where you want others to run them but not change them.
chmod 644 (Ideal for Config Files)
- Owner (6): Read and Write (4+2). No Execute.
- Group (4): Read only (4).
- Public (4): Read only (4).
-
Use case: Standard text files like
.htmlor.env.
chmod 777 (The Danger Zone)
- Everyone (777): Everyone can read, write, edit, and delete the file.
- Use case: almost never. Only use this for temporary testing, then immediately restrict it.
4. Cheat Sheet: The Visual Chmod Calculator
Memorizing 4+2+1 is great, but sometimes you just want to click a few checkboxes and get the right code, or check what permissions 664 actually grants.
I built a free tool to help visualize this. It’s a Chmod Calculator that lets you toggle permissions visually and see the resulting Linux command instantly.
(Note: You can use a screenshot of your actual tool here)
- Interactive Grid: Toggle Read/Write/Execute boxes.
- Reverse Lookup: Type "755" and see exactly what permissions it grants.
- Secure: Runs 100% in your browser.
👉 Try the tool here: DailyDev Chmod Calculator
Summary
Linux permissions are your first line of defense in server security. Remember:
- Read = 4
- Write = 2
- Execute = 1
If you ever forget the math, bookmark the Chmod Calculator to double-check before you deploy.
Happy coding! 🚀
Tags: #linux #devops #webdev #security #beginners
Top comments (0)