web-dev-qa-db-ja.com

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

ルートアカウント(私のmacOS、シングルユーザー)マシンの悪用を防ぐには、rootシェルを常に/usr/bin/false(または /sbin/nologin )に設定する必要があります?

たとえば、私は常にすべきです:

Sudo /usr/bin/dscl . -create /Users/root UserShell /usr/bin/false 

またはそれをしない一般的な理由がありますか( 明白で回避可能 以外)?

4
orome

いいえ、できません。必要の場合、トラブルシューティングやリカバリにrootアカウントを使用する(Macの場合もそうです)ことはできません。

あなたはすべきですが、ルートパスワードを設定します:

$ Sudo passwd root
10
DopeGhoti

概説したようにルートシェルを設定した場合、ログインまたはsu -ルートに。ただし、引き続きSudoまたはsu(マイナスなし)を使用します。

Rootログインを無効にすることは、一般的に良いセキュリティ対策です。ただし、システム障害が発生した場合に、他の方法でマシンにアクセスできることを確認する必要があります。システムの動作がおかしい場合でも、通常のアカウントが機能しない場合でもrootログインは機能する可能性があります(たとえば、ほとんどのUnixシステムでは、ルートホームディレクトリが通常のユーザーのホームディレクトリではなく、システムドライブにあるためです)。

おそらくシングルユーザーモードで起動することはできますが、現在のMacOSバージョンではこれについて100%確信が持てないので、確認する必要があります。ログインしていないシェルでもこれが可能な場合は、これで問題を解決でき、rootログインを安全に無効にできます。

そうでなければ、それはあなたが死にたいと思うどの死の問題になります。より可能性の高いものを自分で決定します。誰かがルートアカウントを悪用したり、システムが誤動作して、ルートアカウントが必要になるところまで行きます。

3
Tom

日常業務

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

そのため、シングルユーザーモードに悪影響はありません。

1
nohillside