スティッキービットについて
公開日:
LPIC を勉強していて気になったシリーズまとめ 3 です, スティッキービットについて。
スティッキービットとは
Linux での一般的な使い方では, ディレクトリ に付与する属性です1。
スティッキービットのついたディレクトリ配下に作成したファイル, ディレクトリは, 所有者以外はファイル・ディレクトリの名前変更・削除ができなく なります。
スティッキービットの有無は SUID, SGID と同じく ls -l などで見ることができます。
その他ユーザーの実行権限に x でなく t がついていると, そのディレクトリにはスティッキービットが付与されています。
スティッキービットの利用例
/tmp ディレクトリ には, スティッキービットがセットされています (その他ユーザーの実行権限が t)。
kangetsu@ubuntu18:~
$ ll /tmp -d
drwxrwxrwt 9 root root 4096 May 24 14:07 /tmp/
kangetsu@ubuntu18:~
上記の通り /tmp は全てのユーザーが全権限を持っているディレクトリで, 一時ファイル, 作業用のファイルなどを作る際によく利用されます。
このため /tmp 以下は無法地帯になりそうですが, スティッキービットが付与されているため, 自分が作成したファイル・ディレクトリ以外は削除などできないようになって, 治安が保たれています。
スティッキービットの付与の方法
chmod コマンドなどでのファイル権限の数値表現で, SUID は 4000, SGID は 2000 でしたが, スティッキービットは 1000 です。
↓ 775 の権限のディレクトリに
kangetsu@ubuntu18:~
$ ll sbit_test -d
drwxrwxr-x 2 kangetsu kangetsu 4096 May 24 15:34 sbit_test/
kangetsu@ubuntu18:~
↓ 1775 で chmod するとスティッキービット付与2 (その他ユーザーの実行権限が t)
kangetsu@ubuntu18:~
$ sudo chmod 1775 sbit_test/
kangetsu@ubuntu18:~
$ ll sbit_test -d
drwxrwxr-t 2 kangetsu kangetsu 4096 May 24 15:34 sbit_test/
kangetsu@ubuntu18:~
まとめ
SUID, SGID に比べあっさりになりましたが, まとめです。
- スティッキービットはディレクトリに付与する
- スティッキービットがセットされているディレクトリ内に作成されたファイル・ディレクトリは, その所有者しか名前変更・削除ができなくなる
/tmpディレクトリが典型例
- 権限の数値表現だと SUID は 4000, SGID は 2000, スティッキービットは 1000