使用 root 权限在 Hudson 中执行构建任务

使用 root 权限在 Hudson 中执行构建任务

我有一个执行 apt-get 的构建脚本,因此需要 root 权限。在 Hudson 中运行此脚本的最佳方法是什么?

目前我发现唯一可行的解​​决方案是在 sudoers 文件中为用户 hudson 添加一个条目,如下所示:

hudson  ALL=(ALL) NOPASSWD:ALL

但是,尽管我的构建脚本现在在 Hudson 中运行没有错误,但我对这个解决方案并不完全满意。有没有更好的方法?

答案1

我更进一步,通过锁定,apt-get我锁定了您可以使用的参数,因为我们不希望有人安装或删除某些东西。

%admins         ALL =  NOPASSWD:                   \
                    /usr/bin/apt-get update,        \
                    /usr/bin/apt-get dist-upgrade,  \
                    /usr/bin/apt-get upgrade

它授予该组admins运行 apt-get update/dist-upgrade/upgrade 的权限,而无需提供密码。

答案2

您可以锁定 hudson 用户被允许以 root 身份执行的命令;将 sudoers 文件中的行更改为:

hudson   ALL=/usr/bin/apt-get  NOPASSWD:ALL

(检查你的 apt-get 二进制文件的路径 - 我在 Fedora 上运行,所以没有该命令)

相关内容