VPSサーバーでWebサイト公開 備忘録 ~Linux、MySQLからAJAXまで

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

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

※目次をクリックすると目次の下部にコンテンツが表示されます。

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