
ルートアカウント(macOS、シングルユーザー)の悪用を防ぐために、シェルを常にroot
(/usr/bin/false
または/sbin/nologin
)?
たとえば、私は常に次のようにすべきでしょうか:
sudo /usr/bin/dscl . -create /Users/root UserShell /usr/bin/false
あるいは、そうしない一般的な理由はありますか(明白かつ回避可能)?
答え1
いいえ、そうすべきではありません。必要トラブルシューティングや回復のためにアカウントを使用することroot
はできません (Mac でも時々発生します)。
あなたすべきただし、ルートパスワードを設定します。
$ sudo passwd root
答え2
ルート シェルを説明したように設定した場合、またはルートにログインすることはできませんsu -
。ただし、sudo
またはsu
(マイナスなし) を使用することはできます。
一般的に、ルート ログインを無効にすることは、セキュリティ対策として有効です。ただし、システム障害が発生した場合に備えて、他の方法でマシンにアクセスできることを確認してください。システムの動作が異常な場合、通常のアカウントが機能しなくても、ルート ログインは機能することがあります (たとえば、ほとんどの Unix システムでルート ホーム ディレクトリが通常のユーザーのホーム ディレクトリではなく、システム ドライブにあるのはそのためです)。
おそらくシングルユーザー モードで起動することはできますが、現在の MacOS バージョンでは 100% 確実ではないので、確認する必要があります。ログイン不要のシェルでもこれが可能な場合は、これでトラブルを回避でき、安全にルート ログインを無効にすることができます。
そうでない場合は、どちらの死を望むかという問題になります。 どちらがより可能性が高いか、つまり誰かがあなたのルート アカウントを悪用するか、それともシステムが故障してルート アカウントが必要になるか、自分で判断してください。
答え3
日々の業務
root
macOS で日常的な操作を実行するためにアカウントを有効にする必要はありません。また、有効なルート アカウントとそのシェルが設定されていなくても、問題なく(およびシェル用)/usr/bin/false
を使用できます。sudo
root
sudo -s
シングルユーザーモード
シングル ユーザー モードでは、ログイン認証に Open Directory ではなく /private/etc/passwd を使用します。
pse@Mithos:~$ grep ^root: /etc/passwd
root:*:0:0:System Administrator:/var/root:/bin/sh
しかし
pse@Mithos:~$ sudo dscl . -read /Users/root UserShell
UserShell: /usr/bin/false
したがって、シングル ユーザー モードに悪影響はありません。