104.5標準
通常のLinux上で、set-user-IDビットが設定されたバイナリを実行する。
no_new_privs、nosuidマウント、ptraceなどsetuidを無効化する条件はない。
実行プロセスに起こる変化として適切なのはどれか。
× 不正解
有効なsetuidバイナリを実行すると、プロセスの実効ユーザーIDがファイル所有者のIDになる。実ユーザーIDは維持される。
詳細解説
誤りファイル所有者が実行者へ変更される
実行してもファイル所有権は変更されない。
ファイル所有権は変わらない。
誤り実ユーザーIDが必ずrootへ変わる
所有者がrootとは限らず、基本的に変わるのは実効IDである。
所有者はrootとは限らずreal UIDも基本維持される。
誤り実効グループIDだけがファイルのグループになる
これはset-group-IDの説明である。
setgidの説明である。
正しい実効ユーザーIDが実行ファイルの所有者IDになる
setuid実行の基本効果である。
正解。effective UIDが所有者へ変わる。
実際に確かめる
一時的な検証環境で実行できる例です。
man 2 execve期待される結果
set-user-IDファイル実行時のeffective user IDの説明理解のポイント
- 変わるのは実効UID
- ファイル所有者のUID
- 無効化条件がある
確認時の注意
- 確認環境: Linux man-pages 6.x
基礎のおさらい
無効化条件
nosuidやno_new_privs等ではsetuid効果が無視される。
保存ID
変更後の実効UIDはsaved set-user-IDにも保存される。
問題IDKP-104-272
確認環境Linux man-pages 6.x
最終技術確認2026-08-13
誤り・権利侵害を報告