UNIXのrootアカウントは正しいですか?

UNIXのrootアカウントは正しいですか?

いくつかの大学の配布資料の主張

rootUnixシステムでは、パスワードの変更、通信プロトコルで使用されるネットワークポートへのアクセス、ハードウェアとのやり取りなど、ユーザーのみがアクセスできる機能の一部がオペレーティングシステムに記録されます。

この説明は正しいですか?これは「オペレーティングシステム」で正確にどこに実装されていますか? root以外のユーザーが書き込めない場合は、どのように自分のパスワードを変更できますか/etc/passwd

私が知っている限り、rootユーザーに無制限の権限を持たないSELinuxなどのUNIXベースのシステムはありますか?

ベストアンサー1

この説明は正しいですか?

はい、いいえ。この声明はせいぜい不完全です。具体的には:

  • パスワードの変更:ユーザーは自分のパスワードを変更できますが、root他のユーザーのパスワードのみを変更できます。これはアクセス権によって強制されます/etc/shadow。 setuidが書き込み権限を取得できるため、バイナリpasswd(1)は権限をバイパスできます。/etc/shadowpasswdrootroot/etc/shadow
  • 通信プロトコルで使用されるネットワークポートにアクセスします。root1024以下のTCPおよびUDPポートのみをバインドでき、他のポートは誰でもバインドできます。これはカーネルによって実施されます。また、rootrawソケットのみを使用できます(特に実行するpingにはuidを設定する必要がある理由ですroot)。ただし、rawソケットにアクセスする詳細はオペレーティングシステムによって異なり、時にはさまざまな非標準ACLメカニズムを介してアクセスが許可されることがあります。
  • ハードウェアとの対話:原則として、プロセスのみがrootハードウェアにネイティブコマンドを送信できます。これは主にデバイスに対する権限によって行われます/dev。ただし、ほとんどのシステムには、USBディスクのマウント、CDの書き込み、オーディオハードウェアの使用など、ユーザーがこれらの権限をバイパスするメカニズムがあります。

これは「オペレーティングシステム」で正確にどこに実装されていますか?

カーネルによって実装された権限システムがあります。ほとんどのオペレーティングシステムは、OpenBSDなどの他のさまざまなメカニズムでこのシステムを補完します。pledge、またはLinux SELinux

私が知っている限り、rootユーザーに無制限の権限を持たないSELinuxなどのUNIXベースのシステムはありますか?

はい。

おすすめ記事