
伝えられるところによると、非 root としてログインして と書き込むとsudo passwd -d root
、root ログインが無効になるため、別のユーザーとしてログインし、 を使用してsu
root に切り替える必要があります (または をそのまま使用してくださいsudo
)。
しかし、これを試してみたところ、ルートログインは無効にならず、パスワードの要件が削除されただけで、実質的に誰でも私のコンピュータのルートにアクセスできるようになりました(ひどい)。
使用するように指示された本はsudo passwd -d root
CentOS 6.5 用に書かれています。私のバージョンは 7.2 です。これは最近の変更ですか、それとも私が何かを誤解しているのでしょうか?
答え1
ローカルPCでrootログインを制限する意味はありません。なぜなら、ローカルユーザーは常にroot権限でシングルユーザーモードでシステムをロードできるからです。ssh経由でのrootログインをブロックする必要がある場合は、/etc/ssh/sshd_configに以下を追加することで実行できます。 PermitRootLogin no
答え2
ルート ログインを防ぐ最も簡単な方法は、 内のルートのパスワードを表す暗号化された文字列を破損することです/etc/shadow
。 内の通常の行は/etc/shadow
次のようになります。
- ユーザー名: ログイン名です。
- パスワード: 暗号化されたパスワードです。パスワードは、特殊文字や数字などを含めて、最低 6 ~ 8 文字にする必要があります。
- 最終パスワード変更日 (lastchanged): 1970 年 1 月 1 日からのパスワード最終変更日数
- 最小: パスワード変更に必要な最小日数、つまりユーザーがパスワードを変更できるようになるまでの日数
- 最大: パスワードが有効な最大日数(その後、ユーザーはパスワードの変更を強制されます)
- 警告: パスワードの有効期限が切れる何日前に、ユーザーにパスワードを変更するよう警告するかを指定します。
- 非アクティブ: パスワードの有効期限が切れてからアカウントが無効になる日数
- 有効期限: 1970 年 1 月 1 日からアカウントが無効になる日数。つまり、ログインが使用できなくなる絶対日付を指定します。
(ここから引用) の root の行のパスワード セクションにハッシュ関数から生成されない ! (感嘆符) を追加できます。/etc/shadow
これにより、考えられるすべてのパスワードを使用したログインを防止できます。これで、root のパスワード ログイン メソッドが削除されたので、誰もどこからも root としてログインできなくなります。パスワードを使用する(ただし、他のログイン方法が存在する可能性があります)
より安全な方法は、ユーティリティを使用することですusermod
: sudo usermod -L root これにより、問題が発生するのを防ぐことができます。詳細なusermod
使用方法については、を参照してくださいusermod(8)
。
root でログインしたい場合は、! を削除すればすべて正常になります。
答え3
usermod -L
前の回答では、またはを使用して root をブロックしpasswd -l
、パスワード フィールドを実質的に ! に設定するという私のコメントが取り上げられていますが、あなたの苦境は説明されていません。
この本では、-dで削除するとアクセスできなくなると書いてあるのはなぜかと考えていましたpasswd -d
。-dでパスワードを空白に設定すると、ルート以外のすべてのユーザーがルートアカウントにアクセスできなくなります。遠隔的に非ルート ユーザーはパスワードのない別のアカウントに移動できないためです。最近の ssh はデフォルトでルートもブロックするため、リモート ユーザーや非ルート ユーザーの観点からはルート アカウントは事実上ブロックされます。(たとえば、ルートとして機能できる唯一の方法は sudo になります)
それでも、ローカル コンソールのユーザーは誰でもパスワードなしで root としてログインできることを本書で言及する必要があります。今日では、仮想環境のコンソールのほとんどのコンソールは一般ユーザーの手の届かないところにありますが、root パスワードを制御する方法があることは常に賢明です。
より賢明なポリシーとしては、 または を使用して root をブロックしますusermod -L
がpasswd -L
、その前に賢明なユーザー ポリシーを確立し、それをテストする必要があります。
代替案としては、makepasswd
緊急時(たとえば、シングルブートや誰かが誤って sudo 設定を台無しにした場合)に備えて、誰にも知られない(たとえば、ランダムに生成して封筒に入れて保管する)非常に安全なルート パスワードを設定し、定期的に変更するという方法があります。その場合、ルート パスワードは確かに役に立ちます。この方法では、sudo 経由の特権作業が強制されます。ルートがロックされている場合、代替案は、仮想または実際の CD またはペンを介してブートすることです。