如何在没有sudo的情况下在Perl中运行命令?
我有一个有问题的用例: 我使用如何在没有sudo的情况下在Perl中运行命令?,perl,sudo,Perl,Sudo,我有一个有问题的用例: 我使用sudo运行Perl脚本(来自Jenkins): sudo/usr/bin/perl/Users/snaggs/scripts/build_ios.pl${build_NUMBER} $Version$isPublish 该脚本从CLI运行多个命令 其中之一是:$pod spec lint失败并出现错误:无法以root身份运行pod my $command = "/usr/local/bin/pod spec lint $POD_SPEC_FILE_ABS --ve
sudo
运行Perl脚本(来自Jenkins):
sudo/usr/bin/perl/Users/snaggs/scripts/build_ios.pl${build_NUMBER}
$Version$isPublish
该脚本从CLI运行多个命令
其中之一是:$pod spec lint
失败并出现错误:无法以root身份运行pod
my $command = "/usr/local/bin/pod spec lint $POD_SPEC_FILE_ABS --verbose";
my $podResults = `$command`;
我不想删除sudo
在没有超级用户的情况下,如何在脚本中运行特定命令?来自
man sudo
:
sudo-v[-AknS][-g组][-h主机][-p提示符][-u用户]
使用-u
标志指定一个用户,该用户不是超级用户,但具有执行您想执行的操作所需的权限
我不希望Jenkins以普通用户的身份(也不希望以超级用户的身份)运行测试代码
更好的方法是设置Jenkins使用组授予权限所需访问的文件和目录的所有权和权限,使Jenkins作为该组的成员运行,然后从
man sudo
中删除sudo:
sudo-v[-AknS][-g组][-h主机][-p提示符][-u用户]
使用-u
标志指定一个用户,该用户不是超级用户,但具有执行您想执行的操作所需的权限
我不希望Jenkins以普通用户的身份(也不希望以超级用户的身份)运行测试代码
更好的方法是设置Jenkins使用组授予权限所需访问的文件和目录的所有权和权限,使Jenkins作为该组的成员运行,然后删除sudo
您应该使用sudomy$command=“sudo-u$username/usr/local/bin/pod spec lint$pod_spec_FILE_ABS——详细”;
您应该使用sudomy$command=“sudo-u$username/usr/local/bin/pod spec lint$pod\u spec\u FILE\u ABS--verbose”;