工作中的詹金斯组与终端中的不同

工作中的詹金斯组与终端中的不同

我已经在我们的开发服务器上安装了 jenkins,并且我将用户“jenkins”添加到一些组,例如 www-data。

现在,当我在终端上运行此命令时:

groups jenkins

我得到这个输出

jenkins www-data

这是可以的,但是在我的一个工作中,我创建了一个 ssh 命令,它只是

groups jenkins

结果是

jenkins

如您所见,缺少“www-data”组,因此我遇到了一些权限错误。

知道为什么会发生这种奇怪的错误吗?

答案1

您的 Jenkins runit 设置可能正在使用仅具有组的用户chpst身份运行。检查您的,如果有,请将其更改为并重新启动jenkinsjenkins/etc/sv/jenkins/runexec chpst -u jenkins -U jenkinsexec 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

编辑:一定有更优雅的方式来重启服务器。如果我找到它,我会更新它。

相关内容