ルートアカウント(私のmacOS、シングルユーザー)マシンの悪用を防ぐには、root
シェルを常に/usr/bin/false
(または /sbin/nologin
)に設定する必要があります?
たとえば、私は常にすべきです:
Sudo /usr/bin/dscl . -create /Users/root UserShell /usr/bin/false
またはそれをしない一般的な理由がありますか( 明白で回避可能 以外)?
いいえ、できません。必要の場合、トラブルシューティングやリカバリにroot
アカウントを使用する(Macの場合もそうです)ことはできません。
あなたはすべきですが、ルートパスワードを設定します:
$ Sudo passwd root
概説したようにルートシェルを設定した場合、ログインまたはsu -
ルートに。ただし、引き続きSudo
またはsu
(マイナスなし)を使用します。
Rootログインを無効にすることは、一般的に良いセキュリティ対策です。ただし、システム障害が発生した場合に、他の方法でマシンにアクセスできることを確認する必要があります。システムの動作がおかしい場合でも、通常のアカウントが機能しない場合でもrootログインは機能する可能性があります(たとえば、ほとんどのUnixシステムでは、ルートホームディレクトリが通常のユーザーのホームディレクトリではなく、システムドライブにあるためです)。
おそらくシングルユーザーモードで起動することはできますが、現在のMacOSバージョンではこれについて100%確信が持てないので、確認する必要があります。ログインしていないシェルでもこれが可能な場合は、これで問題を解決でき、rootログインを安全に無効にできます。
そうでなければ、それはあなたが死にたいと思うどの死の問題になります。より可能性の高いものを自分で決定します。誰かがルートアカウントを悪用したり、システムが誤動作して、ルートアカウントが必要になるところまで行きます。
MacOSで日常の操作を実行するために、root
アカウントを有効にする必要はありません。また、有効なrootアカウントとそのシェルが/usr/bin/false
に設定されていなくても、Sudo
(およびroot
シェルの場合はSudo -s
)を問題なく使用できます。
シングルユーザーモードでは、OpenDirectoryではなく/ 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
そのため、シングルユーザーモードに悪影響はありません。