无法从Hudson作业运行sudo,但sudo直接在系统上运行

时间:2014-08-19 19:47:30

标签: jenkins hudson

我们有一个我们无法完全控制的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

1 个答案:

答案 0 :(得分:0)

这个问题的解决方案对我们有用,就是在系统上安装本地sudo。使用的命令:

  

sudo yum重新安装sudo

安装完成后,必须确保使用了正确的sudo:

export PATH = / usr / bin:$ PATH

以上内容可以添加到从属配置中,因此它适用于该从属服务器上的所有作业。