質問: rootアカウントは常にuid / gid 0を持っていますか? 私が管理しているすべてのlinuxシステムでは、rootアカウントのgidとuidは0です。これは保証されているのでしょうか、それともシステムがrootに別のidを与えるのでしょうか?
回答: 1)管理者は常にuid == 0です。これはカーネルでコーディングされています。これを変更するには、カーネル内でコーディングが必要になります。あまり意味がありませんので、完了していません。たとえば、同じnfsを共有している他のunixとは矛盾します。2)uid 0は必ずしもrootに対応しません。最も良い例はfreebsdです。それは2つのuid == 0アカウントを持ち、違いはシェルです。 rootにはshell/bin/shがあります。これは単純なシェルで、ディスクが不良でfsck/usrが必要な場合に役立ちます。 toorはtcshを使いますが、これは歴史のようなものを持っているので、緊急ではない状況ではもっと便利です。もう一つのもっと個人的な例。私が持っていた仕事の1つでは、nisを介してルート等価(つまりuid = 0)アカウントを持っていました。パスワード、空白!新しいsysadminはマシンのrootパスワードを思い出せないからです。私は明白な理由でこれについて叫んだ(定義上nisパスワードはそれらの空白を隠すことができない)。私はこのアカウントに満足していませんでした。そしてそれは実際にはuid 0を与えるシステムがrootではない、それはあなたです。あなたはこれをpasswdファイルや他のネーミングディレクトリ(nis、ldap)を使って変更しますが、コンパイルされていません。/ etc/passwdに少なくとも1つのuid 0アカウントがあるはずです。そのため、rootは常にuid 0ですが、uid 0は必ずしもrootである必要はありません。