特別な許可 – SUID/SGID
実行可能ファイルに設定できる特別な権限が 2 つあります:ユーザー ID の設定 (setuid) そして グループ ID (sgid) の設定 .これらの権限により、実行中のファイルを所有者またはグループの権限で実行できます。たとえば、ファイルが root ユーザーによって所有され、setuid ビットが設定されている場合、誰がファイルを実行しても、常に root ユーザー権限で実行されます。
SUID/SGID ビットが設定されたファイルの検索
find コマンドを使用して、SUID SGID 権限を持つすべてのファイルを見つけることができます。
1. root の下で SUID パーミッションを持つすべてのファイルを検索するには:
# find / -perm +4000
2. root の下で SGID パーミッションを持つすべてのファイルを検索するには:
# find / -perm +2000
3. 両方の検索コマンドを 1 つの検索コマンドに結合することもできます:
# find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
SUID/SGID の削除
ファイルの SGID および SUID 権限を削除する場合は、次の手順に従います。ファイルのリストを取得したら、chmod コマンドを使用してセキュリティ ビットを削除します:
SUID の場合:
# chmod u-s file_name
SGID の場合:
# chmod g-s file_name
再帰的に行うには、次のコマンドを実行できます:
# for i in `find / -perm +4000` do chmod u-s $i done
同様に、sgid ファイルも変更できます。
# for i in `find / -perm +2000` do chmod g-s $i done注: ファイルのすべての suid を削除します。したがって、for ループを実行する前に注意してください。SUID、SGID、およびスティッキー ビットとは何ですか?
Linux / UNIX :特定の権限セットを持つファイルを検索するための find コマンドの例
UNIX / Linux :正しいコマンドはどれですか? /tmp および /var/tmp ディレクトリの許可