我们有一个我们无法完全控制的Linux系统。基本上我们不能在那里修改sudoers文件(它在远程的只读文件系统上)。
我们为hudson用户提供sudo权限的“解决方案”是将此用户添加到/ etc / group文件中的sudo组。通过这种方法,一旦我ssh到机器,我就可以作为哈德森用户执行sudo。但是,当我尝试在此系统上从Hudson作业执行sudo时,我收到以下错误:
+ id
uid=60000(hudson) gid=60000(hudson) groups=60000(hudson),31(sudo)
+ cat passfile
+ sudo -S -v
Sorry, user hudson may not run sudo on sc11136681.
+ cat passfile
+ sudo -S ls /root
hudson is not allowed to run sudo on sc11136681. This incident will be reported.
以上是试图执行:
cat passfile | sudo -S -v
cat passfile | sudo -S ls /root
为什么我直接ssh到机器但是当Hudson使用ssh时却没有?有没有办法让sudo在Hudson作业中工作而不将hudson用户添加到sudoers文件中?
编辑:在我作为hudson用户ssh到系统后执行sudo命令时输出:
[hudson@sc11136681 ~]$ cat passfile | sudo -S -v
[sudo] password for hudson: [hudson@sc11136681 ~]$
[hudson@sc11136681 ~]$
[hudson@sc11136681 ~]$ cat passfile | sudo -S ls /root
anaconda-ks.cfg install.log.syslog jaytest
install.log iscsi_pool_protocol_fields_file subnets
答案 0 :(得分:0)
这个问题的解决方案对我们有用,就是在系统上安装本地sudo。使用的命令:
sudo yum重新安装sudo
安装完成后,必须确保使用了正确的sudo:
export PATH = / usr / bin:$ PATH
以上内容可以添加到从属配置中,因此它适用于该从属服务器上的所有作业。