Linuxでスティッキービットが設定されているか確認する方法

任意のユーザーに対して書込可能としているディレクトリは、スティッキービットをセットする事が推奨されます。スティッキービットが設定されているか確認し、設定する方法をまとめました。

●スティッキービットとは
 
・任意のユーザーに対し、ディレクトリに書込み権限が設定されている場合、そのディレクトリ内にあるファイルはそのファイル所有者以外のユーザーでも削除できてしまいます。 そのファイル自体に書込権限が付与されていなければ書込みは防げるのですが、削除は防ぐ事が出来ないのです。
 
そこで、”スティッキービット”をディレクトリにセットするとファイル所有者のみにそのファイルの削除を制限する事が出来ます。
 
任意のユーザーに書込権限を与えること自体、セキュリティ上好ましくないので、必要ないなら書込み権限を除去する事が望ましいのですが、必要性があって書込み権限を付与する場合はスティッキービットを設定するようにします。
 
●スティッキービットが設定されているか確認するには?
 
任意のユーザーに書込権限がありスティッキービットがセットされていないディレクトリを探すには下記を実行します
 
“PART”の部分には調査対象のパーティションを記述します。
 
# find “PART” -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
 
※”-xdev”オプション
他のファイルシステム上のディレクトリは検索しない。
“/”を検索した場合、”-xdev”を指定しないと他のファイルシステムも検索してしまいます。
 
●スティッキービットを設定するには?
 
下記コマンドを実行します。
# chmod +t /dir
 
●実行例
 

①任意のユーザーに書込権限がありスティッキービットがセットされていないディレクトリを探す
# find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -exec ls -adl {} \;
   :
drwxrwxrwx 2 root root 4096 Oct  9 12:00 /var/test/test/test

②上記①で"/var/test/test/test"にスティッキービットが設定されていなかったので、スティッキービットを設定
# find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -exec chmod +t {} \;

③再度①を実行し、問題のあるディレクトリが無い事を確認
# find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -exec ls -adl {} \;
関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です