APUEから
プロセスの実際のユーザーIDと実際のグループIDは、私たちの真のアイデンティティを識別します。これら2つのフィールドは、ログイン時にパスワードファイルに作成したエントリから取得されます。通常、これらの値はログインセッション中に変更されませんが、いくつかの方法があります。 これを変更するスーパーユーザープロセス
スーパーユーザープロセスが実際のユーザーIDと実際のグループIDの間の関係がパスワードファイルの関係と一致しないように、プロセスの実際のユーザーIDと実際のグループIDを変更できますか?たとえば、ユーザーがパスワードファイルのグループメンバーTim
でない場合、ocean
スーパーユーザープロセスはプロセスの実際のユーザーIDと実際のグループIDをTim
に変更できますかocean
?
ベストアンサー1
はい、スーパーユーザープロセスは実際のユーザーIDと実際のグループIDを希望の値に変更できます。/etc/passwd
との値は/etc/shadow
値を設定する必要がある設定ですが、可能な値の制限ではありません。
編集#1
つまり、このようなプログラムはlogin
ファイルから値を読み取るため、これらのファイルは構成ファイルまたは入力ファイルです。プログラムが実行できる操作を制限しません。スーパーユーザープロセスは任意の値をカーネルに渡すことができ、カーネルはどのファイルもチェックしません。
プログラムが呼び出すことができる
setgid (54321);
setuid (12345);
これら2つのIDがどの文書にも記載されていない場合でも機能します。