Linuxでディレクトリに対してスティッキービットを設定する!(chmod o+t)

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)