Unixパーミッションをシンボリック・8進数間で変換
rwxr-xr-- は 754 に、754 は rwxr-xr-- に変換されます。読み取りが4、書き込みが2、実行が1として利用者の区分ごとに足すためです。どちらの形を貼り付けても両方が分かり、不正な値は推測せずに指摘します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- テキスト
- rwxr-xr--
- 入力
- rwxr-xr--
- 入力形式
- symbolic
- 8進数
- 754
- シンボリック
- rwxr-xr--
Unixパーミッションは簡潔ですが、デプロイの確認、chmodコマンドの作成、セキュリティ変更の記録で表記を切り替える際には間違いが起こりがちです。この変換ツールは、rwxr-xr--のような9文字のシンボル値、または754のような3桁の8進数値を受け付け、各位置を検証して両方の表記を返します。処理は決定論的であり、ネットワークやファイルシステムにはアクセスせず、実在するファイルの権限も解釈しません。不正な数字、位置を誤った文字、余分な接頭辞、空白、不完全な値は、もっともらしい誤結果ではなく明示的な入力エラーになります。
2種類のパーミッション表記を理解します
標準的なUnixパーミッションは、ファイル所有者、所有グループ、その他の利用者という3つの対象について、固定された順序でアクセス権を表します。シンボル表記では、各対象に3文字のブロックを割り当てます。位置は常に読み取り、書き込み、実行の順です。
そのため、rwxは3つすべて、r-xは読み取りと実行、r--は読み取りだけを許可します。8進数表記は、同じビットを対象ごとの1桁に圧縮します。読み取りは4、書き込みは2、実行は1として、有効な値を加算すると0から7までの数字になります。
したがって、rwxは7、r-xは5、r--は4となり、rwxr-xr--は754に相当します。このツールは所有者、グループ、その他という順序を厳密に保ちます。利用者、グループ、アクセス制御リスト、ファイルシステムのメタデータは参照しません。
処理範囲を変換だけに限定することで、スクリプト、レビュー、運用手順書、教材で予測可能な結果を得られます。
厳密なシンボル値または8進数値を入力します
テキスト欄にはパーミッション文字列を1つだけ入力してください。8進数の場合は、640や755のように、0から7までの数字を使った正確な3文字を指定します。シンボルの場合は正確な9文字を指定し、所有者、グループ、その他のブロックとして扱います。
各ブロックでは、読み取り位置にr、書き込み位置にw、実行位置にxを置き、権限がない位置にはハイフンを使います。rw-r-----は有効ですが、wr-r-----は文字の位置が違うため無効です。検証は意図的に厳格です。
空白の除去、chmodコマンドの受け付け、lsの出力に含まれる先頭のファイル種別文字の受け付け、先頭のゼロの黙示的な破棄は行いません。setuid、setgid、sticky bitも追加のシンボル規則が必要なため対象外です。未対応形式を拒否することで、デプロイ自動化における意図しない正規化を防ぎ、不正な入力をすぐに確認できます。
運用作業で結果を安全に利用します
アクセス権を読みやすく確認したい担当者にはシンボル欄を提示し、コマンド、インフラストラクチャーテンプレート、構成記録では8進数欄を利用できます。ただし、変換は認可の分析ではありません。数値上正しいモードであっても、機密鍵、共有ディレクトリ、実行ファイル、サービスアカウントには不適切な場合があります。
適用前に、対象の所有者、ディレクトリを通過するための実行権限、既定ACLによる追加アクセス、アプリケーションが要求する特殊ビットをご確認ください。このツールはファイルを変更せず、モードが安全であるとも判定しません。指定値の変換だけを行います。
活用例
chmod変更をレビューします
デプロイを承認する前に、8進数モードを所有者、グループ、その他の読みやすいブロックへ変換します。
構成値を準備します
確認済みのシンボル権限を、自動化処理が求めるコンパクトな3桁の値へ変換します。
文書の記載を検証します
手順書のシンボル表記と8進数表記が同じ基本Unixビットを表すことを確認します。
よくある質問
このツールはファイルを変更しますか?
いいえ。 テキストを変換するだけで、ファイルシステムには一切アクセスしません。
4桁のモードに対応していますか?
いいえ。 この版は所有者、グループ、その他の基本3桁のみを受け付け、特殊ビットには対応しません。
ls -lの出力を貼り付けられますか?
いいえ。 先頭のファイル種別文字を取り除き、9文字のパーミッションだけを正確に指定してください。
空白が拒否されるのはなぜですか?
厳密な検証により、セキュリティ関連の自動化で隠れた書式が黙って受理されることを防ぐためです。
wr-r----- のような値が受け付けられないのはなぜですか?
3文字ずつの各ブロックは、読み取り、書き込み、実行の順に位置が決まっています。wr-r----- は文字の位置が入れ替わっているため、正しいパーミッションではありません。各文字を正しい位置に置き、権限がない所はハイフンにしてください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/security/file-permission-symbolic-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"rwxr-xr--"}'const res = await fetch("https://api.kit.forhosting.com/security/file-permission-symbolic-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "rwxr-xr--"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/file-permission-symbolic-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "rwxr-xr--"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/file-permission-symbolic-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"rwxr-xr--"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"rwxr-xr--"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/file-permission-symbolic-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "rwxr-xr--"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.file_permission_symbolic_convert",
"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 | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
運用作業で結果を安全に利用します
応答には、送信値が8進数かシンボルかが示され、両形式の正規化されたフィールドが返されます。自動クライアントでは、invalid_input応答を必須の停止条件として扱い、推測した権限や部分的に解釈した値で処理を継続しないようにできます。
技術的な質問
API呼び出しの料金はいくらですか?
APIリクエスト1回の料金は$0.002です。ブラウザー版はページ上でローカル実行できます。