我已经在我们的开发服务器上安装了 jenkins,并且我将用户“jenkins”添加到一些组,例如 www-data。
现在,当我在终端上运行此命令时:
groups jenkins
我得到这个输出
jenkins www-data
这是可以的,但是在我的一个工作中,我创建了一个 ssh 命令,它只是
groups jenkins
结果是
jenkins
如您所见,缺少“www-data”组,因此我遇到了一些权限错误。
知道为什么会发生这种奇怪的错误吗?
答案1
您的 Jenkins runit 设置可能正在使用仅具有组的用户chpst
身份运行。检查您的,如果有,请将其更改为并重新启动jenkins
jenkins
/etc/sv/jenkins/run
exec chpst -u jenkins -U jenkins
exec chpst -u jenkins:jenkins:www-data -U jenkins
答案2
回复是因为我遇到了类似的问题,但没有运行 runit。
我的系统正在运行远程处理 -https://www.jenkins.io/projects/remoting/
问题:
- jenkins 已添加到 wheel 和 root 组
- 随后以 jenkins 身份调用 sudo 失败
- jenkins 已从 wheel 和 root 中移除,但 sudo 仍然失败
- 以 jenkins 用户身份,通过 ssh 验证组已消失
- 在执行 shell 构建脚本中添加对 /bin/id 的调用表明 jenkins 用户仍然是组的成员
修复:以 jenkins 用户身份重新启动 java remoting
- ps -ef | grep 远程处理
- kill [远程处理 ID]
- cd [jenkins jar 文件夹]
- java -jar remoting.jar -workDir /web/jenkins -jar-cache /web/jenkins/remoting/jarCache
编辑:一定有更优雅的方式来重启服务器。如果我找到它,我会更新它。