セキュリティ

Chmod 権限計算ツール

Unix の権限は 3 桁の数字に見えますが、1 桁の間違いで SSH 鍵が拒否されたり、デプロイ先のディレクトリに入れなくなったり、同じマシン上の全ユーザーへ書き込みを開いてしまうことがあります。この chmod 権限計算ツールでは、8 進数、rwx のシンボル表記、権限マトリクス、コピー可能な chmod コマンドを同じ画面で確認できます。setuid / setgid / sticky、u+x や go-w などのシンボル操作、umask によるデフォルト権限の確認まで、すべてブラウザー内で処理します。

  • 8 進数 ⇄ シンボル ⇄ マトリクス
  • setuid / setgid / sticky
  • umask とシンボル操作
工具/chmod-calculator
42実行1所有者6グループ4その他4

8 進数

0644

シンボル

rw-r--r--

数値コマンド

chmod 644 file

シンボルコマンド

chmod u=rw,g=r,o=r file

誰が何をできるか

所有者
読取書込
グループ
読取
その他
読取

概要

chmod で失敗しやすいのは計算そのものより、各ビットが実際に誰へ何を許すのかを読み違えることです。この画面では各表記を同期し、実行前に意図を確認できます。

  1. 01

    8 進数・シンボル・マトリクスが連動

    rwx グリッドをクリックし、755 や 0644 を入力し、または ls -l の rwxr-xr-x 欄を貼り付けると、すべての表記が同時に更新されます。使い慣れた入口から始められます。

  2. 02

    ファイルとディレクトリを分けて解釈

    ファイルの実行ビットは実行可能性、ディレクトリの実行ビットは中へ入る権限を意味します。対象を切り替えると説明と条件付き X の計算もそれに合わせて変わります。

  3. 03

    特殊ビットを完全に表示

    setuid・setgid・sticky は 4 桁 8 進数の先頭桁と、シンボル表記の s/S/t/T の両方に反映されます。実行ビットなしで特殊ビットだけが立つ大文字ケースも見落としません。

  4. 04

    2 種類の chmod コマンド

    急いで直すときは chmod 755 file のような数値形式を、レビューやスクリプトで意図を残したいときは chmod u=rwx,g=rx,o=rx file のようなシンボル形式をコピーできます。

  5. 05

    権限の内訳と警告

    所有者・グループ・その他が読み取り、書き込み、実行または入室できるかを文章で確認できます。777、その他書込、setuid と書込権限の組み合わせなどは警告として表示します。

  6. 06

    シンボル操作のシミュレーション

    u+x、go-w、a=r、u=g、+t などをベース権限に適用して、実際の結果を確認できます。Dockerfile、CI、デプロイスクリプトの変更前チェックに向いています。

  7. 07

    umask のデフォルト権限を確認

    022、077、002 などの umask が、新規ファイルと新規ディレクトリにどの権限を作るかを即座に確認できます。chmod と umask の役割を混同せずに済みます。

  8. 08

    ローカル計算のみ

    このツールは権限ビットを計算するだけで、ファイルを読み書きしたり、サーバーへ送ったり、コマンドを実行したりしません。

使い方

必要なアクセスを整理してからコマンドをコピーすると、chmod の事故をかなり減らせます。

  1. 01

    対象がファイルかディレクトリかを選びます。ディレクトリの実行ビットと、シンボル操作 X の扱いが変わります。

  2. 02

    よく使うプリセットから始めるか、既存の 8 進数値や rwxr-xr-x 形式の文字列を入力します。

  3. 03

    所有者、グループ、その他の読み取り・書き込み・実行を調整し、必要な場合だけ setuid、setgid、sticky を有効にします。

  4. 04

    結果の内訳と警告を読み、その他書込、777、setuid と書込権限の組み合わせなどが意図せず入っていないか確認します。

  5. 05

    数値形式またはシンボル形式の chmod コマンドをコピーして、内容を理解したうえでシェルで実行します。

  6. 06

    相対変更を試す場合はシンボル操作モード、システムの初期権限を確認する場合は umask モードを使います。

詳細

ツールを正確で快適にする細部:

  • 8 進数は常に 4 桁で特殊ビット桁を表示。特殊ビットがない場合、chmod コマンドはすっきり 3 桁になります。
  • シンボル解析は先頭のファイル種別文字も許容するため、ls -l の権限列をそのまま貼り付けられます。
  • 条件付き実行 X は実際の chmod と同じ挙動——ディレクトリ、またはどこかに実行権限があるときのみ付与します。
  • すべての値とコマンドに行内コピーボタン、さらに現在のモードをクリアするリセットを備えています。
  • すべてブラウザー内で動作。パス・ファイル名・権限が端末から外部へ送信されることはありません。

活用シーン

chmod は日常的な作業ですが、失敗するとすぐ障害や露出につながります。実行前の確認に使える場面です。

  1. SSH 秘密鍵の権限修正

    SSH クライアントは、グループやその他が読める秘密鍵を拒否することがあります。秘密鍵は 600、.ssh ディレクトリは 700 かを確認できます。

  2. Web サーバーへの配置

    通常ファイルは 644、ディレクトリと実行スクリプトは 755 が基本です。Web サーバーへ読み取りと通過だけを許し、コードへの書き込みは開かないように確認します。

  3. 共有ディレクトリの設計

    チームで書き込む場所では、グループ書込、setgid、sticky ビットを組み合わせることがあります。共有ホストへ適用する前に各ビットを検証できます。

  4. Dockerfile と CI のレビュー

    chmod 4755、chmod +s、chmod -R 777 のような行を見つけたら、最終的に誰へ何を許すのかを確認してから承認できます。

  5. アップロード・キャッシュ・ログの修復

    アプリが書き込めない原因は、所有者違い、ディレクトリ実行ビット不足、グループ書込不足などさまざまです。777 に広げる前に必要な最小権限を確認できます。

  6. リリース成果物の点検

    実行ファイルには x が必要ですが、ドキュメントや設定ファイルには不要です。パッケージング前に、ローカル環境の書込ビットが混入していないか確認できます。

  7. 共有ホスティングの権限確認

    705、750、775 などホスティング会社の推奨値を、人が読める権限説明へ変換してから自分のディレクトリ構成に合うか判断できます。

  8. Unix 権限の説明と引き継ぎ

    4-2-1 の計算、rwx 文字列、chmod コマンドを同時に見せることで、644、755、600、777 の違いを短時間で説明できます。

関連情報

権限だけでは不十分で、データそのものを秘匿したい場合は ファイル暗号化 を利用します。そうしたファイルを所有するアカウントを守るには、 パスワードジェネレーター で強力なシークレットを生成しましょう。

Unix 権限の基本モデル

chmod を正しく読むには、誰に対する権限なのか、各ビットが何を意味するのか、ファイルとディレクトリで何が変わるのかを分けて考えます。

  1. 3 つの対象: 所有者・グループ・その他

    ファイルやディレクトリの権限は、所有者 user、所属グループ group、その他 others の 3 種類に分かれます。chmod の通常の 3 桁はこの順序で並び、それぞれが何を許すかを表します。

  2. 4-2-1 の 8 進数計算

    読み取りは 4、書き込みは 2、実行は 1 です。同じ枠で有効な値を足すだけで、rwx は 7、rw- は 6、r-x は 5、r-- は 4 になります。644 は所有者 6、グループ 4、その他 4 です。

  3. シンボル表記は意図を残しやすい

    rwxr-xr-x は ls -l でよく見る形で、u+x、go-w、a=r は相対操作です。数値は全体を一度に設定するのに向き、シンボル操作は一部だけ追加・削除したいときに安全です。

  4. ディレクトリの実行ビットは実行ではない

    ファイルの x はプログラムやスクリプトを実行できることを意味します。ディレクトリの x は、その中へ入って既知の名前へ到達できることを意味します。読み取りだけで実行がないディレクトリは、通常は実用的に開けません。

  5. setuid・setgid・sticky

    4 桁 8 進数の先頭桁は特殊ビットです。setuid / setgid は実行ファイルを所有者またはグループの権限で動かし、ディレクトリの setgid は新規ファイルにグループを継承させます。sticky は共有ディレクトリで他人のファイル削除を防ぐために使われます。

  6. umask はデフォルト権限の引き算

    新規ファイルは通常 666、新規ディレクトリは 777 を基準にし、umask がそこから権限を差し引きます。umask 022 はファイル 644、ディレクトリ 755 を作り、077 はほぼ所有者だけに閉じます。

使い方のヒント

システムを使いやすく安全に保つ妥当なデフォルト:

  • 動作する最小限の権限を優先:ファイル 644、ディレクトリ 755 でほとんどのケースをカバーできます。
  • シークレットは 600(または 400)、その格納ディレクトリは 700 にし、所有者だけがアクセスできるようにします。
  • 777 は警告サインとして扱います。「777 でしか動かない」場合、本当の原因は所有者、グループ、またはディレクトリ実行ビットであることがほとんどです。
  • setuid・setgid は控えめに使い、グループ書込・全員書込が同時に付いた対象には絶対に使わないでください。
  • 共有の全員書込可ディレクトリには sticky ビットを付け、ユーザーが互いのファイルを削除できないようにします。
  • 1 つのビットだけを調整したいときは、絶対値より chmod go-w や chmod u+x のようなシンボル操作を優先すると、意図しない上書きを避けやすくなります。

制限事項

この計算ツールがカバーする範囲・しない範囲:

  • 権限ビットを計算するだけで、ファイルを変更したりシステム上でコマンドを実行したりはしません。
  • 所有者(chown)、ACL(setfacl)、属性(chattr)は別の仕組みであり、対象外です。
  • シンボル操作は一般的な u/g/o/a、+/-/=、r/w/x/X/s/t 構文に対応しますが、あらゆる特殊な組み合わせには対応しません。
  • umask の逆算は標準の 666/777 を基準とします。ログインシェルがさらに制限を加える場合があります。

よくある質問

chmod と Unix 権限に関するよくある質問。

chmod 755 とは何ですか?

755 は所有者が読み・書き・実行(7 = 4+2+1)、グループとその他が読みと実行は可能だが書き込み不可(5 = 4+1)という意味です。ディレクトリや実行可能スクリプトの一般的な設定です。

644 と 755 はどう使い分けますか?

通常ファイルは 644 が基本で、所有者だけが書き込み、他のユーザーは読み取りのみです。ディレクトリと実行スクリプトは 755 がよく使われます。ディレクトリには入るための実行ビットが必要なので、644 にすると実用上開けないことがあります。

8 進数とシンボル表記の違いは?

8 進数(例: 644)は各権限グループを 1 桁で符号化し、シンボル(例: rw-r--r-- や u=rw,go=r)はグループごとに読み/書き/実行を明示します。同じビットを表しており、本ツールは両者を同期します。

setuid・setgid・sticky ビットの働きは?

setuid/setgid は実行ファイルをファイルの所有者/グループ権限で実行させ、ディレクトリの setgid は新規ファイルにグループを継承させます。ディレクトリの sticky ビットは、そのファイルの所有者だけが削除できることを意味します。8 進数の先頭桁とシンボルの s/S/t/T に現れます。

なぜ 777 は危険とされるのですか?

777 はシステム上のすべてのユーザーにそのファイルやディレクトリの読み・変更・実行を許します。共有や外部公開の対象では改ざんや侵害への近道になります——動作する最小限の権限を優先しましょう。

umask と chmod の関係は?

umask は新規ファイル(基準 666)とディレクトリ(基準 777)の作成時にどの権限ビットを除くかを定義します。したがって umask 022 ではファイルが 644、ディレクトリが 755 になります。chmod は権限を明示的に設定し、umask はデフォルトを設定します。

入力した内容はどこかに送信されますか?

いいえ。計算ツールは完全にブラウザー内で動作します。ファイル名・権限値・umask の入力が端末から外部へ出ることはありません。

関連ツール

他のセキュリティツールも続けてご覧ください。