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

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

rootアカウント(私の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またはEvenを使用します。su

ルートログインを無効にするのは一般的に良いセキュリティ対策です。ただし、システムエラーが発生した場合は、コンピュータにアクセスする他の方法があることを確認する必要があります。システムが正常に動作していない場合、rootログインは機能し続けますが、通常のアカウントは機能しません(たとえば、ほとんどのUnixシステムでは、rootホームディレクトリが通常のユーザホームディレクトリではなくシステムドライブにある理由)。 。

それでもシングルユーザーモードで起動できますが、現在のバージョンのMacOSでは100%確信できないため、確認する必要があります。ログインしていないシェルを使用してもこれを行うことができる場合は、問題を解決する方法であり、安全にルートログインを無効にすることができます。

そうでなければどうやって死にたいかという問題になります。何が起こる可能性が高いかを自分で決めてください。誰かがrootアカウントを誤用するか、システムが誤動作してrootアカウントが必要です。

答え3

日常業務

rootmacOSで日常的な作業を行うためにこのアカウントを有効にする必要はありません。ルートアカウントとそのシェル設定が有効になっていない場合でも、/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

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

関連情報