何らかの理由で、元のパスワードが認識されずにサーバーを復元し、ルートパスワードを新しいパスワードにリセットしました。それでもルートのSSHパスワードの受け入れを拒否します。さらなる調査は、破損したetc / passwdファイルである可能性があることを示しました。
Parallelsは、次のコマンドを実行するように言います。
cat /etc/passwd | grep ^root | hexdump -c
ファイルの終わりは\ nで終わらなければなりませんが、私のファイルは\ r \ nで終わるはずです。 /bin/bash privs ユーザーとしてファイルを確認しました。これで問題が発生します。ルートディレクトリのpasswdファイルを確認できません。どんなアイデアがありますか?
私は2つのetc/passwdの場所があることを知っています。システムに割り当てられたユーザーごとに1つ、2番目はetcルート領域にあります。ありがとう
答え1
/etc/passwd
WindowsエディタまたはWindowsファイルを生成するように設定されたエディタを使用してファイルを編集しました。しないでください。 Windowsは2文字シーケンスCR-LFを使用して線を越えて、Linux、およびその他のUNIXシステムはLFのみを使用し、CRを正確に行末のプレーン文字として扱います。通常、Linuxでファイルを編集するにはLinuxエディタを使用し、Windowsエディタを使用する場合はファイルをLinux改行形式で保存する必要があります。
今の問題は、パスワードが無効であるということではありません。正常に認証されました。ログインプロセスが完了したら、最後に行うことは、次の説明に従ってlogin
シェルを実行することです。シェルが最後の列なので、ルートのシェルにはCR文字が含まれるように設定されています。su
sshd
/etc/passwd
/etc/passwd
/bin/bash␍
␍
このファイルを作成または編集する/etc/passwd
には、ルートアクセスが必要です。ルートアカウントを効果的に無効にしたため、物理アクセスが必要です。
答え2
コンソールでパスワードを受け入れますか?システムをアップグレードし、sshd_configが交換された可能性があります。デフォルトでは、SSHを介したルートアクセスは無効になっています。ちなみに、パスワードは/etc/passwdに保存されず、/etc/shadowに保存されます。影響を受ける唯一のものは、/etc/passwdの最後のフィールドであるログインシェルです。ファイルを編集して\ rを削除するのはどうですか?あなたのユーザーはsudoersリストにありますか?その場合は、sudo bash
ファイルを実行して編集してください。
答え3
ログインしたら、次を試してください。
su root
その後、rootとしてログインします。この方法が機能したら、passwdファイルを編集できます。
答え4
注 - 誰かが検索でこのコンテンツを見つけた場合。
破損したパスワードファイルは利用できないか使用su
できません。sudo su -
それは言うでしょうNo such shell bash^M
。
sudo su -s /bin/bash
ただし、実行する代替シェルを指定するために実行できます。またはsu -s /bin/bash
ルートのパスワードがある場合。