【发布时间】:2023-03-07 15:40:01
【问题描述】:
我们有一个无法完全控制的 linux 系统。基本上我们不能在那里修改 sudoers 文件(它位于远程的只读文件系统上)。
我们让 hudson 用户拥有 sudo 权限的“解决方案”是将此用户添加到 /etc/group 文件中的 sudo 组。使用这种方法,一旦我 ssh 到机器,我就可以作为 hudson 用户执行 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
【问题讨论】:
-
/etc/sudoers中的 hudson 行是什么? -
无法查看文件:权限被拒绝。我很确定 hudson 用户不在 sudoers 文件中。
-
您可以通过
visudo来查看文件以及您使用的是哪个linux? -
Cannot view file with visudo, error: $ visudo visudo: /usr/local/packages/sudo_remote/1.6.7p5/etc/sudoers: 只读文件系统