ルートシェルを常に /usr/bin/false に設定する必要がありますか?

ルートシェルを常に /usr/bin/false に設定する必要がありますか?

ルートアカウント(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

日々の業務

rootmacOS で日常的な操作を実行するためにアカウントを有効にする必要はありません。また、有効なルート アカウントとそのシェルが設定されていなくても、問題なく(およびシェル用)/usr/bin/falseを使用できます。sudorootsudo -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

したがって、シングル ユーザー モードに悪影響はありません。

関連情報