いくつかの大学の配布資料の主張
root
Unixシステムでは、パスワードの変更、通信プロトコルで使用されるネットワークポートへのアクセス、ハードウェアとのやり取りなど、ユーザーのみがアクセスできる機能の一部がオペレーティングシステムに記録されます。
この説明は正しいですか?これは「オペレーティングシステム」で正確にどこに実装されていますか? root以外のユーザーが書き込めない場合は、どのように自分のパスワードを変更できますか/etc/passwd
?
私が知っている限り、rootユーザーに無制限の権限を持たないSELinuxなどのUNIXベースのシステムはありますか?
ベストアンサー1
この説明は正しいですか?
はい、いいえ。この声明はせいぜい不完全です。具体的には:
- パスワードの変更:ユーザーは自分のパスワードを変更できますが、
root
他のユーザーのパスワードのみを変更できます。これはアクセス権によって強制されます/etc/shadow
。 setuidが書き込み権限を取得できるため、バイナリpasswd(1)
は権限をバイパスできます。/etc/shadow
passwd
root
root
/etc/shadow
- 通信プロトコルで使用されるネットワークポートにアクセスします。
root
1024以下のTCPおよびUDPポートのみをバインドでき、他のポートは誰でもバインドできます。これはカーネルによって実施されます。また、root
rawソケットのみを使用できます(特に実行するping
にはuidを設定する必要がある理由ですroot
)。ただし、rawソケットにアクセスする詳細はオペレーティングシステムによって異なり、時にはさまざまな非標準ACLメカニズムを介してアクセスが許可されることがあります。 - ハードウェアとの対話:原則として、プロセスのみが
root
ハードウェアにネイティブコマンドを送信できます。これは主にデバイスに対する権限によって行われます/dev
。ただし、ほとんどのシステムには、USBディスクのマウント、CDの書き込み、オーディオハードウェアの使用など、ユーザーがこれらの権限をバイパスするメカニズムがあります。
これは「オペレーティングシステム」で正確にどこに実装されていますか?
カーネルによって実装された権限システムがあります。ほとんどのオペレーティングシステムは、OpenBSDなどの他のさまざまなメカニズムでこのシステムを補完します。pledge
、またはLinux SELinux
。
私が知っている限り、rootユーザーに無制限の権限を持たないSELinuxなどのUNIXベースのシステムはありますか?
はい。