umiyosh回答ポイント 80ptウォッチ 1

Net::SSH::Perlをつかってrootにスイッチユーザしたいです。ホストに接続し一般ユーザでコマンド発行はできるのですがsudo -sしたあとPasswordプロンプトを受け取ったまま止まってしまいます。

なにか良い方法ないでしょうか。
Net::SSH::ExpectやNet::Expectも試したですが、実行結果出力が乱れてしまいやりたいこと(複数ホストにちらばるスクリプトの調査)ができなくなってしまうので左記モジュールは避けたいです。Expectコマンドも同様の理由で避けたいです。
また、/etc/sudoersを勝手に編集することができないためパスワード無しでスイッチするなどの方法も使えないです。

Net::SSH::Perlでやりたいです。おねがいします。すごいひと。

ちなみに以下がそのコードです。@cmdlistにコマンドが入ってます。
$OUTFILEに実行結果をロギングしています。
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
my $ssh = Net::SSH::Perl->new($host,debug => 1);
$ssh->login($user, $pass);


for my $cmd (@cmdlist){
my($stdout, $stderr, $exit) = $ssh->cmd($cmd);
print $OUTFILE $stdout;
}
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2010-07-06 01:40:59
終了日時
2010-07-13 01:45:03
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

Perl1679SSH565スクリプト2307sudo95モジュール927root457LOGiN141パスワード2211EXIT194

人気の質問

メニュー

PC版