我使用salvas'Net :: Openssh模块,但无法计算如何使用sudo。我尝试了以下方法,但它不起作用...perl sudo使用Net :: Openssh不起作用
结果中没有任何结果。像ls
,pwd
这样的单字命令也没有产生任何东西。目标系统上
版本须藤的:
$ /usr/local/bin/sudo -V
CU Sudo version 1.5.7p2
$ /usr/local/bin/sudo -h
CU Sudo version 1.5.7p2
usage: /usr/local/bin/sudo -V | -h | -l | -v | -k | -H | [-b] [-p prompt] [-u username/#uid] -s | <command>
因为CU须藤不允许在同一时间多于1个选择,我供给命令之前供给-k。
请注意,这个sudo版本没有-S开关来使用stdin传递密码。所以它期望来自终端的密码。你可以帮助更多。谢谢。
$ssh->system("$sudo_path -k");
my @output = $ssh->capture({tty => 1,
stdin_data => "$PASS"},
$sudo_path,
"-p",'', "$cmd");
print " [email protected] \n";
OR
$ssh->system("$sudo_path -k");
my @output = $ssh->capture({stdin_data => "$PASS"},
$sudo_path,
"-p",'', "$cmd");
print " [email protected] \n";
您是否试图运行一个命令,要求您通过Net :: OpenSSH连接使用sudo?如果是这样,你应该修改你的问题标题,以更准确地反映你的问题'perl sudo ...'听起来像你正在尝试使用Perl Sudo模块http://search.cpan.org/~landman/Sudo-0.21 /lib/Sudo.pm – AndrewPK
你好安德鲁,我要结帐sudo.pm我会报告什么发现。如果你有任何使用经验pl分享 – rajeev
,可能工作sudo.pm似乎提供了一些远程机制,但它从2007年以来一直没有更新。一如既往与perl - timtowtdi。无论最适合你的是什么,我只是回答了对我而言最简单的东西,并且要求的依赖性最小。 – AndrewPK