Chmod 2755の解説
chmod 2755はSGIDビットと標準的なディレクトリパーミッションを設定。新規ファイルがディレクトリのグループを継承します。共有ワークスペースに必須。
Permission
2755
rwxr-sr-x
chmod 2755 filename
パーミッション解析
| Role | Read (4) | Write (2) | Execute (1) | Octal | 意味 |
|---|---|---|---|---|---|
| Owner | r | w | x | 7 | read, write, execute |
| Group | r | - | x | 5 | read, execute |
| Others | r | - | x | 5 | read, execute |
Special bits (2): SGID (Set Group ID on execution / inherit group).
パーミッションの可視化
Read
Write
Execute
Owner
r
w
e
Group
r
-
e
Others
r
-
e
詳細な説明
パーミッション 2755 は、標準的な 755 パーミッションと SGID(Set Group ID)ビットを組み合わせたもので、ディレクトリに対して特別な動作をします。
8進数の内訳:
- 2(特殊): SGIDビット設定
- 7(所有者): read (4) + write (2) + execute (1) = フルアクセス
- 5(グループ): read (4) + execute (1) = 読み取りと実行
- 5(その他): read (4) + execute (1) = 読み取りと実行
シンボリック表記では rwxr-sr-x となります。グループの execute 位置の s がSGIDの設定を示しています。
SGIDがディレクトリに設定されると、その中に作成されるすべての新規ファイルとサブディレクトリは、作成したユーザーのプライマリグループではなく、ディレクトリのグループ所有権を自動的に継承します。チームメンバー全員のファイルが同じグループを持つようにしたい共有プロジェクトディレクトリにおいて、一貫したアクセス制御を実現するために非常に有用です。
SGIDが実行ファイルに設定されると、そのプログラムは実行ユーザーのグループではなく、ファイルのグループの実効グループIDで実行され、グループが所有するリソースへの制御されたアクセスを可能にします。
ユースケース
マルチユーザーシステムの共有プロジェクトディレクトリに不可欠。どの開発者が作成してもすべてのファイルが www-data グループに所有される /var/www の設定に使用されます。