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

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

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


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

確認方法


 
下記findコマンドでセットユーザーID、セットグループIDが設定されているファイルをピックアップ出来ます。
 
“PART”の部分には調査対象のパーティションを記述します。
 
# find PART -xdev \( -perm -4000 -o -perm -2000 \) -type f -print
 
・”-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参照
 
 IPv6を使用していなければ不要
/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
 restrict
/usr/sbin/userisdnctl
 ISDNを使用しないなら不要
/usr/sbin/usernetctl
 ユーザーがインターフェースを変更しないなら不要

関連記事の目次

コメントを残す

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