在Linux中,如何将用户更改为perl中的root并继续运行此脚本?如何在perl中导出代理?
我的perl脚本应该能够在执行期间将普通帐户更改为root帐户,然后继续执行其余命令。但我不知道该怎么办:在Linux中,如何将用户更改为perl中的root并继续运行此脚本?如何在perl中导出代理?
-
更改为root帐户,并能够自动通过身份验证,我使用下面的代码,但失败了。
system "echo \"$password\" | sudo -S su root";
能够继续完成剩下的scriptsI使用脚本时更改帐户中(只是一味系统“命令苏”),它是不能执行其他脚本
-
我需要出口代理,但是当我使用下面的代码,它不工作:
system "export http_proxy=http://proxy.companyname.com:8080";
也许尝试反引号?
my $sudo = `echo \"$password\" | sudo -S su root`;
也出口类似。
my $exp = `export http_proxy=http://proxy.companyname.com:8080`;
谢谢,但我认为系统的功能“”;与反引号几乎相同?我其实不想得到上述命令的输出,我只希望这两个命令可以执行。 –
如果您需要执行其他脚本以root执行,并且您已经安装了SSH的Perl模块,那么你可以打开一个SSH会话以root用户的本地主机并从那里开始执行脚本。
my $ssh = Net::SSH::Perl->new("host1");
$ssh->login("root", "pass1");
$ssh->cmd("sh /opt/...");
感谢您的回复,但我无法安装Net :: SSH :: Perl。 –
的[运行Linux系统命令作为超级用户,使用Python脚本]可能的复制(http://stackoverflow.com/questions/583216/run-a-linux-system-command-as-a -superuser-using-a-python-script)或者[如何运行需要root权限的perl脚本?](https://stackoverflow.com/questions/16178015/how-can-i-run-a-perl- script-which-needs-root?rq = 1) – ray
谢谢,但有点不同。我应该使用perl脚本将帐户更改为root并导出代理,并且不能更改配置文件/配置文件或使用“sudo命令”。 –
最近版本的'sudo'可以通过传递'-S'来读取'stdin'的密码。详细信息请阅读[手册页](https://www.sudo.ws/man/1.8.18/sudo.man.html)! – salva