よく忘れるので、備忘も兼ね情報を整理したいと思います。
- ■スティッキービットとは?
- ■スティッキービットの設定箇所について
- ■スティッキービットの確認方法
- ■スティッキービットの動作確認1
- ■スティッキービットの動作確認2
- ■スティッキービットのメリット
- ■スティッキービットのデメリット
本記事は以下の本を参考にしております。
■スティッキービットとは?
例えば、777(rwxrwxrwx)のパーミッションが設定したディレクトリを例に挙げると、
・全てのユーザがファイル/ディレクトリに対して作成書き込み実行が可能
となります。
このとき、777のディレクトリに対してスティッキービットを設定することで、
① 全てのユーザがファイル/ディレクトリに対して作成書き込み実行が可能
② ファイル/ディレクトリの削除は所有者だけ可能
③ 例外としてrootユーザは削除可能
となります。
■スティッキービットの設定箇所について
スティッキービットは、ディレクトリに対して設定します。
スティッキービットが設定されたディレクトリは、
ディレクトリ内のファイル、およびその配下のディレクトリすべてに対して有効です。
■スティッキービットの確認方法
/tmpディレクトリはデフォルトでスティッキービットが設定されています。
rwxrwxrwtの「t」がスティッキービットであることを意味します。
■スティッキービットの動作確認1
まず、一般ユーザであるtestユーザにて
以下ディレクトリおよびテキストを作成します。
<作成対象> /tmp/work/test.txt
※workディレクトリは775、testファイルは777です。
※のちほど、別ユーザ(test2)にて、testファイルを削除するので777にしています。
では、一般ユーザのtest2にて、/tmp/work/test.txtを削除しようと思います。
削除ができないことが表示されました。
/tmp/workディレクトリも削除しようと思います。
想定通り、削除できないことが表示されました。
■スティッキービットの動作確認2
rootユーザで/tmp/work/test.txt、/tmp/workが削除出来ることを確認しました。
■スティッキービットのメリット
スティッキービットを設定したディレクトリは、
誰でも自由に使え、かつ自分が作成したファイルは他のユーザに削除されないってところです。
※既出の通り、rootユーザは削除可能です。
■スティッキービットのデメリット
/tmpディレクトリのゴミ掃除時に一般ユーザで掃除しようとすると削除できない。。。
※ゴミ掃除ならroot権限でサクッとやってしまうのもありかと。
以上です。
本記事は以下の本を参考にしております。