Unix File Permissions, Actually Explained
What the three-part read/write/execute model is actually encoding, and why 755 and 644 became the defaults everyone reaches for.
Published April 13, 2026
Unix permissions look like a cryptic three-digit number (755, 644) until the underlying model clicks: three questions (read, write, execute), asked three times (for the owner, the group, and everyone else), each answer worth a bit. Once that clicks, the numbers stop being magic and start being arithmetic.
Where the numbers actually come from
Read is worth 4, write is worth 2, execute is worth 1, and you add up whichever apply. Full access (read + write + execute) is 4+2+1 = 7. Read and execute but no write is 4+1 = 5. Read only is 4. A permission like 755 is just those three answers stacked: 7 for the owner (full access), 5 for the group (read and execute, no write), 5 for everyone else (same as group).
Why 755 and 644 specifically became the standard defaults
755 is the default for directories and executable files: the owner needs full control, but everyone else reasonably needs to enter the directory or run the program without being able to modify it. 644 is the default for regular files, like a config file, an image, a text document: read access for everyone, write access only for the owner, and no execute bit because a plain data file has no business being executable.
The mistake that quietly causes bugs
Setting execute on a file that doesn't need it (a data file, an image, a log) doesn't usually break anything visibly, but it's a signal something was set carelessly, often by copy-pasting a chmod command from a different context. The more consequential mistake is the opposite direction: setting overly permissive permissions like 777 as a quick fix for a permissions error on a server that's reachable from the internet, which trades a minor inconvenience for a real, avoidable security exposure.