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

findコマンドでセットユーザ(グループ)IDが不要にセットされていないかチェック

システム全体のファイルにセットユーザーID(SUID)、セットグループID(SGID)が不要にセットされていないかfindコマンドで一斉にチェックする方法についてです。

セットユーザーID(SUID)、セットグループID(SGID)とは?


 
セットユーザーIDが設定されているファイルは、実行するユーザーではなくそのファイルの所有者(セットグループIDの場合はグループ)の権限で実行されます。
 
suやsudoコマンドは、他のユーザーとしてコマンドを実行するので所有者がrootでセットユーザーIDが設定されています。
 

確認方法


 
下記findコマンドでセットユーザーID、セットグループIDが設定されているファイルをピックアップ出来ます。
 
# find PART -xdev \( -perm -4000 -o -perm -2000 \) -type f -print
“PART”の部分には調査対象のパーティションを記述します。
 
※”-xdev”オプション
他のファイルシステム上のディレクトリは検索しない。このオプションを指定しないと、”/”を検索した場合、他のマウントされている他のファイルシステムも検索してしまう。
 

変更方法


 
下記コマンドを実行します。
# chmod -s file
 
●セットユーザーID/セットグループIDが不要かも知れないファイル
 
※参考資料
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』の2.2.3.4
 
・/sbin/mount.nfs、/sbin/umount.nfs
 NFSを使用していなければ不要
・/sbin/mount.nfs4、/sbin/umount.nfs4
 NFSv4を使用していなければ不要
・/sbin/netreport
 ユーザーがインターフェースを修正しないなら不要
・/usr/bin/chage
 ユーザーがexiry情報を表示しないなら不要
・/usr/bin/chfn
 ユーザーがfinger情報を変更しないなら不要
・/usr/bin/chsh
 ユーザーがシェルを変更しないなら不要
・/usr/bin/crontab
 ユーザーがcronを使用しないなら不要
・/usr/bin/lockfile
 procmailを使用しないなら不要
・/usr/bin/rcp
 rshは非推奨で不要
・/usr/bin/rlogin
 rshは非推奨で不要
・/usr/bin/rsh
 rshは非推奨で不要
・/usr/bin/wall
 コンソールメッセージングを使用しないなら不要
・/usr/bin/write
 コンソールメッセージングを使用しないなら不要
・/usr/bin/Xorg
 X11を使用しないなら不要
・/usr/kerberos/bin/ksu
 Kerberosを使用しないなら不要
・/usr/libexec/openssh/ssh-keysign
 sshdがホストベース認証を使用しないなら不要
・/usr/lib/squid/pam
 squidを使用しないなら不要
・/usr/lib/squid/ncsa
 squidを使用しないなら不要
・/usr/lib/vte/gnome-pty-helper
 X11を使用しないなら不要
・/usr/sbin/ccreds
 PAM auth cachingを使用しないなら不要
・/usr/sbin/suexec
 apacheを使用しないなら不要
・/usr/sbin/userhelper
 
・/usr/sbin/userisdnctl
 ISDNを使用しないなら不要
・/usr/sbin/usernetctl
 ユーザーがインターフェースを変更しないなら不要
モバイルバージョンを終了