我正在尝试在我的团队服务器上编写一些内容并遇到一些困难。
对于我正在编写脚本的部分内容,我需要让用户通过sudo su APPUSER
切换用户,然后运行几个命令。但是,sudo被锁定在我们的服务器上,我无法运行类似:sudo su APPUSER -c COMMAND
的内容。我已经要求修复,系统管理员总是说“不”。
我目前正在使用perl来编写脚本,我需要使用appuser而不是开发人员的用户来运行大约三个命令。我可以通过连续执行每个命令在命令行上执行此操作,但我不知道如何让perl执行此操作。
如何让perl在命令行上执行多个命令,使其在上一次执行后不会丢弃shell / state?即,运行多个system
电话无效。
答案 0 :(得分:1)
我找到了解决方案。
打开一个bash进程并读写它:
#!/usr/bin/perl
use strict;
use warnings;
open(BASH, "|-", "bash");
print BASH "sudo su APPUSER\n";
print BASH "touch /home/APPUSER/sudobashtest\n";
close(BASH);
答案 1 :(得分:0)
这不起作用吗?
system("sudo su APPUSER && command1 && command2");