Explain Unix file permission octal
Unix file permissions are compact, but a value such as 755 is not self-explanatory when you do not work with it every day.
Run — free
This capability turns the three octal digits into explicit read, write, and execute rights for the file owner, the file's group, and everyone else. It also returns the familiar symbolic form, making it easy to review a permission value before using chmod, documenting a deployment, or investigating an access problem.
Read the three digits by audience
A standard Unix permission octal has three meaningful digits, and each position describes a different audience. The first digit belongs to the owner, usually the user account that owns the file. The second belongs to the group associated with the file. The third applies to others, meaning users who are neither the owner nor members of that group for this access check. Enter a value such as 755 and the result keeps those audiences separate instead of presenting one unexplained number. It reports each original digit, three boolean rights, a short English sentence, and the combined symbolic form. A conventional leading zero is accepted, so 0755 is interpreted in the same way as 755. This tool deliberately focuses on the ordinary three permission classes. It does not interpret a separate leading digit for setuid, setgid, or the sticky bit. Keeping the scope explicit prevents a four-digit special-mode value from being silently described as if it were an ordinary owner, group, and others permission.
Understand how each octal digit becomes rights
Each octal digit is a compact sum of three flags. Read contributes 4, write contributes 2, and execute contributes 1. A digit of 7 therefore means all three rights because 4 plus 2 plus 1 equals 7. A digit of 6 means read and write, while 5 means read and execute. A zero grants none of the three rights. The conversion is performed independently for owner, group, and others, which is why 754 becomes owner read, write, and execute; group read and execute; and others read only. The symbolic result expresses the same information as three rwx triplets. A missing right is shown with a hyphen, so 754 becomes rwxr-xr--. For a regular file, read permits viewing content, write permits changing content, and execute permits running it as a program when the format and system allow that. For a directory, these bits have related but different operational effects, especially execute, which controls traversal. The result explains flags rather than predicting every filesystem operation.
Validate permissions before applying them
Permission mistakes are often small strings with large consequences. Granting write access to others can let unrelated accounts alter a file, while removing execute from a directory can block access even when read is present. Use the explanation as a review step before running chmod, placing a mode in an infrastructure template, or approving a deployment change. The structured fields are also useful in automation: a policy check can inspect the others.write value directly, while a human reviewer reads the matching sentence. Invalid notation fails clearly. Any digit outside the octal range, such as 8 or 9, produces an input error instead of a misleading conversion. Values must otherwise contain exactly three permission digits, with only an optional conventional leading zero. The capability does not inspect a real path, account membership, access-control lists, umasks, mount options, or ownership, so it cannot promise that a particular process will gain access. It explains precisely what the supplied basic mode says and leaves environmental authorization checks to the operating system.
What you can do with it
Review a chmod command
Expand a proposed mode before applying it so reviewers can see exactly which audience receives each right.
Document deployment permissions
Add a plain-English explanation and symbolic mode beside an octal value in a runbook or change record.
Check configuration policy
Use the structured booleans to flag risky rights, such as write permission granted to others.
FAQ
What does an octal digit represent?
It combines read as 4, write as 2, and execute as 1. The sum identifies which rights are enabled.
What does 755 mean?
The owner can read, write, and execute. The group and others can read and execute but cannot write.
Can I enter 0755?
Yes. One conventional leading zero is accepted and the result is normalized to the three permission digits.
Does this explain setuid, setgid, or the sticky bit?
No. This capability explains the three ordinary owner, group, and others digits, not a separate special-bits digit.
Why is a digit such as 8 rejected?
Octal notation has only the digits 0 through 7, so 8 or 9 cannot encode a Unix permission triplet.
What does the API request cost?
Each API request costs $0.002. The browser version can run the same deterministic explanation locally.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/security/file-permission-octal-explain \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"octal":"755"}'const res = await fetch("https://api.kit.forhosting.com/security/file-permission-octal-explain", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"octal": "755"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/file-permission-octal-explain",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"octal": "755"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/file-permission-octal-explain", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"octal":"755"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"octal":"755"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/file-permission-octal-explain", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"octal": "755"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.file_permission_octal_explain",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |