rootのログインシェルを使用せずにrootアクセス権を取得します。

rootのログインシェルを使用せずにrootアクセス権を取得します。

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を無効にしました。

ベストアンサー1

おすすめ記事