Unixパーミッションの8進数を所有者・グループ別に解説
Unixのファイルパーミッションは簡潔ですが、日常的に扱わない場合、755のような値だけでは意味が分かりにくいものです。この機能は3桁の8進数を、ファイル所有者、ファイルのグループ、その他の利用者それぞれの読み取り・書き込み・実行権限に変換します。一般的なシンボル表記も返すため、chmodを実行する前の確認、デプロイ手順の記録、アクセス障害の調査に役立ちます。
無料で実行
3桁を対象者ごとに読み分けます
標準的なUnixの8進数パーミッションには、意味を持つ数字が3つあり、それぞれ異なる対象者を表します。1桁目は所有者に対応し、通常はそのファイルを所有するユーザーアカウントです。2桁目はファイルに関連付けられたグループに対応します。3桁目はその他の利用者、つまりアクセス判定時に所有者でもグループのメンバーでもない利用者に適用されます。755のような値を入力すると、説明のない数値を示すのではなく、この3つを分けて結果を返します。各対象について、元の数字、3種類の真偽値、分かりやすい説明文、結合したシンボル表記を確認できます。慣例的な先頭のゼロも使用できるため、0755は755と同じ意味として処理されます。このツールが扱うのは通常の3つの権限区分だけです。setuid、setgid、sticky bitを示す別の先頭桁は解釈しません。対象範囲を明確にすることで、4桁の特殊モードを通常の所有者・グループ・その他の権限として誤って説明することを防いでいます。
各8進数字が権限になる仕組みを理解します
8進数の各数字は、3つのフラグを合計した簡潔な表現です。読み取りは4、書き込みは2、実行は1として数えます。そのため7は4、2、1の合計であり、3つの権限がすべて有効です。6は読み取りと書き込み、5は読み取りと実行を意味します。0の場合は3つとも許可されません。この変換は所有者、グループ、その他について個別に行われます。したがって754では、所有者に読み取り・書き込み・実行、グループに読み取り・実行、その他に読み取りだけが与えられます。シンボル形式は同じ情報を3組のrwxで表します。許可されない権限はハイフンになるため、754はrwxr-xr--です。通常のファイルでは、読み取りは内容の参照、書き込みは内容の変更、実行は形式とシステムが対応している場合にプログラムとして起動することを意味します。ディレクトリでは各ビットの働きが関連しながらも異なり、特に実行権限は中をたどれるかどうかを制御します。この結果はフラグを説明するもので、すべてのファイルシステム操作の可否を予測するものではありません。
適用前にパーミッションを検証します
パーミッションの誤りは短い文字列に見えても、大きな影響を及ぼすことがあります。その他の利用者に書き込みを許可すると、無関係なアカウントがファイルを変更できる可能性があります。一方、ディレクトリから実行権限を外すと、読み取り権限があってもアクセスできない場合があります。chmodを実行する前、インフラ構成テンプレートにモードを記載する前、またはデプロイ変更を承認する前の確認手順としてご利用ください。構造化された項目は自動処理にも便利です。ポリシーはothers.writeを直接検査でき、担当者は対応する説明文を読めます。不正な表記は明確なエラーになります。8や9など8進数の範囲外の数字がある場合、誤解を招く変換結果ではなく入力エラーを返します。値は正確に3桁の権限数字である必要があり、慣例的な先頭のゼロだけを追加できます。この機能は実在するパス、グループ所属、アクセス制御リスト、umask、マウントオプション、所有関係を調べません。入力された基本モードを正確に説明し、環境に依存する認可判定はオペレーティングシステムに委ねます。
活用例
chmodコマンドを確認する
適用前に予定しているモードを展開し、各対象者へ与える権限をレビュー担当者が正確に確認できるようにします。
デプロイ権限を記録する
運用手順書や変更記録の8進数値に、分かりやすい説明とシンボル表記を添えます。
構成ポリシーを検査する
構造化された真偽値を使い、その他への書き込み許可など、危険な権限を検出します。
よくある質問
8進数の1桁は何を表しますか?
読み取りを4、書き込みを2、実行を1として組み合わせます。合計値から有効な権限が分かります。
755にはどのような意味がありますか?
所有者は読み取り、書き込み、実行が可能です。グループとその他は読み取りと実行が可能ですが、書き込みはできません。
0755を入力できますか?
はい。慣例的な先頭のゼロを1つ使用でき、結果は3桁の権限表記に正規化されます。
setuid、setgid、sticky bitも説明しますか?
いいえ。この機能は所有者、グループ、その他の通常の3桁を説明し、特殊ビット用の別の桁は扱いません。
8のような数字が拒否されるのはなぜですか?
8進表記で使える数字は0から7までなので、8や9ではUnixパーミッションの3ビットを表せません。
APIリクエストの料金はいくらですか?
APIリクエスト1回の料金は$0.002です。ブラウザー版では同じ決定的な説明処理をローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"octal": "755"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.file_permission_octal_explain",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |