Unixのファイル削除の仕組みは面白くてファイルの書き込み権限が無くてもディレクトリに書込み権限があればファイルを削除することができます。
なぜならディレクトリに書き込み権限がある=ディレクトリの中のi-node情報を更新できるってことです。
ファイル名とinodeの繋がりを切ってしまえばファイルは参照できなくなってしまいます。
とはいえフォルダは書き込みできるけどこのファイルは消せないようにしたいと思うのが人の性です。
そこでスティッキービットが出てきました。
ディレクトリに書き込み権限をつけた状態でファイルにスティッキービットを立てると、
- どのユーザーであっても自由にファイルを作成し読み出し書き込み実行が可能
- 作成されたファイルは作成者以外には削除できない。またアクセス権限も変更できない
という状況が出来上がります。
「gara.txt」にsticky bitを立てるには以下のように打ちます
$is -latr -rw-r--r-- 1 GARAPON GARAGRP 3 Sep 1 10:38 gara.txt $chmod +t gara.txt $is -latr -rw-r--r-T 1 GARAPON GARAGRP 3 Sep 1 10:38 gara.txt