私は次のようなことをします。
- コマンドはsshを介してbashスクリプトのルートとしてサーバー上でリモートで実行する必要があり、コマンド出力は変数から取得する必要があります。
- SSH 経由のルートログインが無効になっています。
- サーバーでsudoが無効になっているため、suを使用する必要があります。
- 編集:bashでできるだけ自動化したいので、パスワードは〜しなければならないコマンド内部に保存
数日間インターネット検索をしてみましたが、解決策が見つからないようです。
ここで提案された解決策:SSHでサーバーに接続し、ユーザーを切り替えてディレクトリを変更します。
ssh -t username@hostname "sudo su - otheruser -c \"cd /path/to/directory && command\""
サーバーでsudoが無効になっているため、機能しません。
誰にも解決策はありますか?
ベストアンサー1
SSHを介して(無許可のユーザーとして)ログインし、パラメータなしでコマンドを実行してsu
rootに変更します。これを行うには、ルートパスワードが必要です。次に、実行したいコマンドを実行します。
編集する:1行でこれを行うには、次のコマンドを使用できます。
ssh username@hostname "su -c \"code_here\""
それでも機能しない場合は、passwd
rootとして実行してrootパスワードを有効にしていることを確認してください。新しいルートパスワードを入力するように求められます。
追加:root以外のユーザーとしてコマンドを実行するには(ターゲットユーザーのパスワードが必要です):
ssh username@hostname "su - username_of_target -c \"code_here\""