我有一个执行 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 上运行,所以没有该命令)