UNIXの権限設定は、比較的シンプルな方式ですが、いくつかわかりにくい設定もあります。その中の一つ、スティッキービットについて整理したいと思います。
スティッキービットの使い方を理解する!
スティッキービットの用途は、誰でもフルで権限が許可されているディレクトリに対して、他のユーザが所有しているファイルを削除できないようにする設定で、ディレクトリに対して設定します。利用例としては「/tmp」ディレクトリです。
ls -ld /tmp drwxrwxrwt 37 root root 12288 Mar 30 11:14 /tmp
ただし、rootユーザは、スティッキービットが設定されていても、どのユーザのファイルでも削除できます。
スティッキービットを設定する!
chmodコマンドで、スティッキービットの設定および解除を行うことができます。
$ ls -l total 4 drwxrwxrwx 2 sysusr01 sysusr01 4096 Mar 30 11:37 test $ chmod o+t test $ ls -l total 4 drwxrwxrwt 2 sysusr01 sysusr01 4096 Mar 30 11:37 test $ chmod o-t test $ ls -l total 4 drwxrwxrwx 2 sysusr01 sysusr01 4096 Mar 30 11:37 test $ chmod 1777 test $ ls -l total 4 drwxrwxrwt 2 sysusr01 sysusr01 4096 Mar 30 11:37 test $ chmod 0777 test $ ls -l total 4 drwxrwxrwx 2 sysusr01 sysusr01 4096 Mar 30 11:37 test
スティッキービットが設定されているファイルを探す!
スティッキービットが設定されているファイルを探してみます。
$ sudo find / -perm -1000 -type d | xargs ls -ld
おわりに
スティッキービットは、読み取り、書き込み、実行権限では設定できない、ファイル自体に対する削除の制御を行います。ディレクトリの権限を「777」に設定している場合は、セキュリティを高めるために、積極的に設定することを検討しましょう。補足として、ファイルに対してたてても意味を持ちません。
関連記事
関連書籍(Amazon)