ssh を使用してユーザーとしてログインし、root に変更すると sudo は不要です。

ssh を使用してユーザーとしてログインし、root に変更すると sudo は不要です。

私は次のようなことをします。

  • コマンドはsshを介してbashスクリプトのルートとしてサーバー上でリモートで実行する必要があり、コマンド出力は変数から取得する必要があります。
  • SSH 経由のルートログインが無効になっています。
  • サーバーでsudoが無効になっているため、suを使用する必要があります。
  • 編集:bashでできるだけ自動化したいので、パスワードは〜しなければならないコマンド内部に保存

数日間インターネット検索をしてみましたが、解決策が見つからないようです。

ここで提案された解決策:SSHでサーバーに接続し、ユーザーを切り替えてディレクトリを変更します。

    ssh -t username@hostname "sudo su - otheruser -c \"cd /path/to/directory && command\""

サーバーでsudoが無効になっているため、機能しません。

誰にも解決策はありますか?

ベストアンサー1

SSHを介して(無許可のユーザーとして)ログインし、パラメータなしでコマンドを実行してsurootに変更します。これを行うには、ルートパスワードが必要です。次に、実行したいコマンドを実行します。
編集する:1行でこれを行うには、次のコマンドを使用できます。
ssh username@hostname "su -c \"code_here\""
それでも機能しない場合は、passwdrootとして実行してrootパスワードを有効にしていることを確認してください。新しいルートパスワードを入力するように求められます。
追加:root以外のユーザーとしてコマンドを実行するには(ターゲットユーザーのパスワードが必要です):
ssh username@hostname "su - username_of_target -c \"code_here\""

おすすめ記事