Linuxのファイルパーミッションとは?

Linuxのファイルパーミッションは、ファイルやディレクトリに対して誰が読み取り、書き込み、または実行できるかを制御します。Linux上のすべてのファイルには3つのパーミッショングループがあります:オーナー(作成したユーザー)、グループ(共通グループを共有するユーザー)、その他(それ以外の全員)。各グループには3種類のアクセス権を付与できます:読み取り(r)、書き込み(w)、実行(x)。

パーミッションは2種類の表記法で表すことができます。シンボリック表記rwxr-xr-xのような文字を使用し、各文字が特定のグループに対する特定のパーミッションを表します。8進数(数値)表記755のような3桁または4桁の数字を使用し、各桁はパーミッション値の合計です:読み取り = 4、書き込み = 2、実行 = 1。

8進数表記のオプションの先頭桁は特殊ビットを表します:setuid(4)、setgid(2)、スティッキービット(1)。setuidはプログラムをファイルオーナーの権限で実行できるようにし、setgidは新しいファイルが親ディレクトリのグループを継承するようにし、スティッキービットは共有ディレクトリで自分が所有していないファイルをユーザーが削除できないようにします。

ツールの説明

このツールを使用すると、Linuxのファイルパーミッションをインタラクティブに構築・デコードできます。オーナー、グループ、その他のチェックボックスを切り替えて読み取り、書き込み、実行フラグを設定すると、8進数表記とシンボリック表記の両方で結果を即座に確認できます。755のような8進数値やrwxr-xr-xのようなシンボリック文字列を直接入力することもでき、チェックボックスとビジュアル出力が自動的に更新されます。色分けされたビジュアル表示により、どのパーミッションが有効かを一目で把握でき、すぐに使えるchmodコマンドも自動生成されます。

使用例

8進数 シンボリック 意味
755 -rwxr-xr-x オーナー:フルアクセス。グループとその他:読み取りと実行。
644 -rw-r--r-- オーナー:読み取りと書き込み。グループとその他:読み取りのみ。
700 -rwx------ オーナー:フルアクセス。グループとその他:アクセス不可。
777 -rwxrwxrwx 全員にフルアクセス。
1755 -rwxr-xr-t 755にスティッキービットを設定したもの。
4755 -rwsr-xr-x 755にsetuidビットを設定したもの。

機能

  • チェックボックスでグループごとに読み取り、書き込み、実行パーミッションを個別に切り替え
  • 8進数(例:755)またはシンボリック表記(例:rwxr-xr-x)を直接入力して即座に変換を確認
  • 有効なパーミッションをすばやく認識できる色分けされたビジュアルブロック
  • 特殊パーミッションビットのサポート:setuid、setgid、スティッキービット
  • ターミナルでそのままコピーして使えるchmodコマンドの自動生成

ユースケース

  • Webサーバーのセットアップ:ApacheやNginxが提供するファイルに適切なパーミッションセットを素早く決定します。静的ファイルには644、実行可能スクリプトには755など。
  • アクセス拒否エラーのデバッグls -lの出力からパーミッション文字列を貼り付けて、どのグループがアクセス権を持っていないかを視覚的に把握します。
  • Linuxパーミッションの学習:個々のフラグを切り替えることで、8進数表記とシンボリック表記がどのように変化するかをインタラクティブに探索します。

仕組み

各パーミッションタイプには数値の重みがあります:読み取り = 4、書き込み = 2、実行 = 1。グループの8進数の桁は、有効なパーミッションの重みの合計です。たとえば、読み取り + 実行 = 4 + 1 = 5。完全な8進数表記は、オーナー、グループ、その他の桁を連結したものです。つまりrwxr-xr-x755になります。

特殊ビットは同じ方法で計算されたオプションの先頭桁を追加します:setuid = 4、setgid = 2、スティッキー = 1。1755という値は、スティッキービット(1)+オーナー=7、グループ=5、その他=5を意味します。

オプションの説明

  • オーナー / グループ / その他のチェックボックス:各パーミッショングループの読み取り(r)、書き込み(w)、実行(x)を個別に切り替えます。
  • Setuid:実行可能ファイルに設定すると、実行したユーザーの権限ではなく、ファイルオーナーの権限でプログラムが実行されます。
  • Setgid:ディレクトリに設定すると、新しいファイルがディレクトリのグループを継承します。実行可能ファイルに設定すると、ファイルグループの権限で実行されます。
  • スティッキービット:ディレクトリに設定すると、他のユーザーが書き込み権限を持っていても、ファイルオーナーのみがディレクトリ内のファイルを削除またはリネームできます。
  • 8進数入力:3桁または4桁の8進数を入力して、すべてのパーミッションを一度に設定します。
  • シンボリック入力:9文字または10文字のシンボリック文字列(オプションのファイルタイププレフィックスあり)を入力してパーミッションを設定します。

よくある質問

chmod 777とはどういう意味ですか? オーナー、グループ、およびその他すべてのユーザーに読み取り、書き込み、実行パーミッションを付与します。これは一般的に本番システムでは安全ではありません。

小文字のsと大文字のSの違いは何ですか? 小文字のsは、実行ビットと特殊ビット(setuidまたはsetgid)の両方が設定されていることを意味します。大文字のSは、実行パーミッションなしで特殊ビットのみが設定されていることを意味します。

スティッキービットは何に使われますか? スティッキービットは、/tmpのような共有ディレクトリによく設定されます。全員がディレクトリへの書き込みアクセス権を持っていても、ユーザーが互いのファイルを削除またはリネームできないようにするためです。