スーパーユーザープロセスがパスワードファイルの内容と一致せずに、プロセスの実際のユーザーIDとグループIDを変更できますか?

スーパーユーザープロセスがパスワードファイルの内容と一致せずに、プロセスの実際のユーザーIDとグループIDを変更できますか?

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がどの文書にも記載されていない場合でも機能します。

おすすめ記事