zshがまだデフォルトのシェルである間、zshを削除してrootログインをブロックしました。ログイン時に/bin/zsh
(1)を使用しようとしていますが、その(1)が見つからないため、結果はログインに失敗します。
他のユーザー1人だけがコードを実行できますが、権限はほとんどありません。su
(2)と他のさまざまな方法で権利を高めようとしましたが、sudo
成功しませんでした。この問題を解決するためにコマンドを使用する方法はありますか?
最後の手段としてサーバーをLive CDから起動し、ファイルストアを直接変更してみましょう。ただし、この方法ではダウンタイムが発生し、エラーが発生したときに現在実行されているすべてのサービスを再起動できないため、回避したいと思います。サーバーがCentOSを実行しています。
(1)
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/zsh
(2)
$ echo my-root-password | su --shell=/bin/bash - root -c 'yum install zsh -y'
Password: su: using restricted shell /bin/zsh
su: failed to execute /bin/zsh: No such file or directory
(コードの実行は対話型シェルでは実行されないため、パスワードはパイプで接続されます。)
編集する: すべての提案に感謝します!残念ながら、それらのどれも機能しなかったので、ダウンタイムを取らなければなりませんでした。予想以上に時間がかかり、多くのことを試しましたが、うまくいきませんでしたが、振り返ると、次の手順で問題が解決しました.
私は変わった起動パラメータサーバーに対する基本的な制御権限を持ちます。ファイルを編集し/etc/passwd
て起動時に認証サービスに失敗する原因となるポリシーがいくつかあるため、SELinuxを無効にしました。