【问题标题】:Cannot run sudo from Hudson job, but sudo works directly on the system无法从 Hudson 作业运行 sudo,但 sudo 可直接在系统上运行
【发布时间】: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: 只读文件系统

标签: jenkins hudson


【解决方案1】:

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

sudo yum 重新安装 sudo

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

导出 PATH=/usr/bin:$PATH

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 2016-10-20
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多