
おそらく、root以外のユーザーとしてログインしてwriteをすると、sudo passwd -d root
rootログインは無効になります。つまり、別のユーザーとしてログインしてsu
rootに切り替える必要があります(またはそのままにしておく必要がありますsudo
)。
しかし、これを試してもルートログインは無効になっていませんでしたが、パスワードの要件は削除され、本質的に誰でも自分のコンピュータのルートにアクセスできるようになりました(とても悪い)。
私が使用するように聞いた本はsudo passwd -d root
CentOS 6.5用に書かれています。私のバージョンは7.2です。これは最近の変更ですか?それとも私が何かを間違って理解していますか?
答え1
ローカルユーザーは常にroot権限を使用してシングルユーザーモードでシステムをロードできるため、ローカルPCでrootログインを制限することは意味がありません。 SSHを介したルートログインを防ぐ必要がある場合は、/etc/ssh/sshd_configに以下を追加することができます。 PermitRootLogin no
答え2
ルートログインを防ぐ最も簡単な方法はbreakです/etc/shadow
。一般的な行/etc/shadow
は次のとおりです。
- ユーザー名:あなたのログイン名です。
- パスワード:暗号化されたパスワードです。パスワードの長さは、特殊文字/数字などを含む6〜8文字以上でなければなりません。
- 最終変更:1970年1月1日以降の最後のパスワード変更以降の経過日数
- 最小:パスワード変更の間に必要な最小日数、つまりユーザーがパスワードを変更できるまでの残り日数
- 最大:パスワードが有効な最大日数(ユーザーが強制的にパスワードを変更した後)
- 警告:パスワードが期限切れになるまでユーザーにパスワードを変更する必要があることを警告する日数
- 無効:パスワードの有効期限が切れた後にアカウントが無効になる日数
- 有効期限:1970年1月1日以降にアカウントが無効になった日数で、ログインが使用されなくなった絶対日付を指定します。
(ここから引用)一つ追加できます! (感嘆符)は、ルート行のパスワード部分のハッシュ関数から生成されないため、/etc/shadow
可能なすべてのパスワードでログインすることはできません。これで、rootパスワードのログイン方法が削除されたため、誰でもどこでもrootとしてログインできません。パスワードの使用。 (代替ログイン方法がある場合があります。)
より安全な方法はusermod
ユーティリティを使用することです:sudo usermod -L rootこれは問題が発生するのを防ぎます。詳細な使用法をusermod
参照してくださいusermod(8)
。
rootでログインしたい場合は削除してください!すべてが良くなるでしょう。
答え3
以前の回答では、usermod -L
root を使用またはブロックし、passwd -l
パスワードフィールドを ! に効果的に設定することについての私の意見に言及しましたが、ジレンマについては説明しません。
本から削除するとアクセスがブロックされるとされている理由が気になりますpasswd -d
。パスワードを空白に設定して-dを追加すると、root以外のすべてのユーザーがrootアカウントにアクセスするのを防ぎます。離れて、root以外のユーザーはパスワードなしで他のアカウントに移動できないためです。 ssh はデフォルトで root もブロックするので、root アカウントはリモートユーザーと root 以外のユーザーの観点から効果的にブロックされます。 (たとえば、rootで作業できる唯一の方法はsudoです。)
それにもかかわらず、この本では、ローカルコンソールのすべてのユーザーがパスワードなしでrootとしてログインできることに注意してください。現在、ほとんどのコンソールには仮想環境の一般ユーザーがアクセスできませんが、ルートパスワードを制御する方法があることは常に賢明です。
より賢明な戦略はusermod -L
rootを使用またはブロックすることですがpasswd -L
、スマートユーザーポリシーを構築してテストする前には避けてください。
別のアプローチは、緊急事態(例えば、単一のブートまたは誰かが誤ってsudoを台無しにした場合)に備えて定期的に変更され、誰もこれを知らない非常に安全なルートパスワードを設定することです(makepasswd
例:ランダムに作成してエンベロープに保管)。 )ルートパスワードを便利に使用できます。そうしないと、ルートがロックされているときに仮想または物理CDまたはペンから起動できます。