数ヶ月間触れなかった後、私は仮想サーバーの1つにログインしてOpenSSLを更新したいと思いました。サーバーがsudo
インストールされていないDebian 7を実行しています。
私は3つの方法を試しました。
ssh root@server
、パスワードが承認された後:Could not chdir to home directory /home/root: No such file or directory Connection to server closed.
他のユーザーとしてログインしてから
su - root
。No directory, logging in with HOME=/
その後、rootとしてログインせずに通常のシェルに戻ります。
他のユーザーとしてログインしてから
su root
。何の結果も得られませんでした。ただ一般的なプロンプトに戻り、まだrootではなく別のユーザーとしてログインしていました。
月曜日より前にサーバーを手動で再起動する機会はありません。ルートシェルを得るためにできることはありますか?サーバーが破損している可能性があります。ルートアクセスなしでどのように確認できますか?ありがとうございます!
すべての場合に間違ったパスワードを入力すると、端末は通常どおり苦情を表示します。
/root
/etc/passwd
正しいディレクトリが存在し、リストされています。 sshがなぜ違うのかわかりません。
これは重要かもしれません。呼び出しが$?
失敗した後に確認すると、suのマニュアルページに従ってsu
1つが提供されます1
。System or authentication failure
どうすればより詳細にすることができますか?
次の要件に従って出力されますssh -v
。
Last login: Fri Apr 11 17:47:46 2014 from some_client
Could not chdir to home directory /home/root: No such file or directory
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to server closed.
Transferred: sent 3136, received 2448 bytes, in 0.0 seconds
Bytes per second: sent 299688.7, received 233940.7
debug1: Exit status 1
答え1
次の内容はすべてソースです ここ。
このエラーメッセージは、ルートのホームディレクトリがないことを示します。を使用して再作成できますが、mkdir /root
空です。
通常、rootとして直接ログインしないでください。 TelnetおよびXセッションの場合は、すべての直接ルートアクセスを無効にする必要があります。ただし、問題が発生した場合にテキストモード端末でrootアクセスを許可すると、命を救うことができます。常に実際のユーザーとしてログインしてから、またはsu
(もちろんルートパスワード)を使用してsu -
ルートに変更する必要があります。
しかし、あなたの場合はまだディレクトリがないので、suは何の効果もありません/root
。
/ rootディレクトリを作成した後も、一部のデフォルトファイルはまだありません。
必要なファイルはデフォルトファイル.bash_profile
で.bashrc
、コピーする必要があります/root
。先行することはファイルが隠されていることを意味するので、そのファイルを表示するには.
これを行う必要があるかもしれません。ls -a
編集する
実際の問題は、rootユーザーの場合はシェルがに設定されていることです/bin/false
。これは、次のコマンドを実行して確認できます。
getent passwd root
この場合、上記のコマンドの出力は次のようになります。
root:x:0:0:Netbios Domain Administrator:/home/root:/bin/false
ユーザーがいる場合は変更できますsudo
。またはモードでシステムを起動し、上記の設定をsingle
編集する必要があります。