パーミッション設定が甘いディレクトリを簡単に発見する
ディレクトリの書き込み権限を適切に設定することは、セキュリティを確保するうえで非常に重要です。
各ユーザーのumaskが適切に設定されていない場合、気づかない
うちに低いセキュリティのファイルやディレクトリを作成してしまいます。これを防止す
るために、普段からパーミッションの甘いディレクトリがないか検査するようにしましょ
う。その方法は、「SUIDおよびSGIDプログラムの調査」[Hack #2]で紹介した方法と同様
に、findコマンドを利用して行います。
# find / -type d \( -perm -g+w -o -perm -o+w \) -exec ls -lad {} \;
このコマンドを実行すると他のユーザーやグループに書き込み権限を与えているディ
レクトリがリストアップされます。これらのディレクトリにはstickyビットを設定すべき
です。stickyビットが設定されていると、ls -lコマンドの出力のファイル属性にtの
文字が表示されます。stickyビットが設定されたディレクトリ内のファイルについては、
そのディレクトリの所有者、ファイルの所有者、rootにのみ書き込みや変更の権限が与
えられます。
また、stickyビットが設定されてないディレクトリは、以下のコマンドを実行すること
で探し出します。
# find / -type d \( -perm -g+w -o -perm -o+w \) \
-not -perm -a+t -exec ls -lad {} \;
ユーザー名と同名のクループ名のグループに属している(例えば、andrewというユー
ザーがandrewというグループに属している)場合にはセキュリティ上の問題にはなり
ませんので、グループのユーザーに書き込み権限を与えたディレクトリを探す必要はあ
りません(さもないと、実行結果にセキュリティ上問題のないディレクトリが混ざってし
まいます)。その場合はコマンドの-perm -g+wを削除して実行しましょう。