5

リモート ホストで root 権限がないと実行できないローカル スクリプトがあります。sudoers ファイルを編集して、ホーム ディレクトリ (/home/username/script) からスクリプトを実行できるようにしました。スクリプトは結果を含む txt ファイルを作成しますが、出力をターミナルにリダイレクトし、出力をローカル マシン上のテキスト ファイルにパイプします。

「ssh user@hostname sudo -Sv < script.sh > results.txt」はできません。これは、リモート ホスト、特にホーム ディレクトリからスクリプトを実行しないためです。

スクリプトをリモートホストにコピーし、出力を取得しながらルートとして実行する方法 (1 行) を知っている人はいますか?

ご協力ありがとうございます

4

2 に答える 2

12

sudo があり、root への sudo が許可されている場合、これは少し少ない構文で機能します。

ssh -T user@hostname 'sudo su -' < script.sh

于 2013-11-21T18:22:28.077 に答える
2

でスクリプトをコピーしてscp実行します。

scp script.sh user@hostname:
ssh user@hostname sudo ./script.sh > results.txt

一行でそれを行うには:

ssh user@hostname 'cat > script.sh; chmod 755 script.sh; sudo ./script.sh' < script.sh > results.txt

ただし、 にパスワードを入力する必要がある場合、これは機能しませんsudo。のすべてsshの stdin がスクリプトに入れられます。を使用してこれを行う方法があるかもしれませんがExpect、私にはあまり専門知識がありません。

于 2013-08-01T18:23:45.577 に答える