首页 > 解决方案 > Jenkins 工作区文件夹权限

问题描述

这是我的jenkinx/jenkins_home/workspace文件夹的样子。(在执行 ls -la 时)

drwxrwxrwx 24 nfsnobody nfsnobody  4096 Sep 29 18:26 workspace

此工作空间内有一个文件夹。这个文件夹是 Jenkins 在我构建工作时自动创建的。这个职位名称是Sandbox_Test-Job

这是文件夹

drwxr-xr-x  2 nfsnobody nfsnobody  4096 Sep 29 18:26 Sandbox_Test-Job

如您所见,主机用户没有对该文件夹的写入权限,并且主机中的脚本无法写入 Sandbox_Test-Vinod_M

在脚本可以写入之前,我必须先手动设置此文件夹的权限。我们如何确保 Jenkins 为每个作业创建此作业文件夹时,该文件夹必须对主机中的用户具有写入权限?

标签: jenkinsnfs

解决方案


首先,您要运行ls -n以查找文件/目录的真实UID/GID,而不是显示名称。接下来,检查该用户是否出现在您的/etc/passwd

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

您需要在 65534 中找到显示的 UID ls -n,而不是nfsnobody- 65534。

“nfsbody 不太可能是文件的所有者(RHEL NFS 参考Linux Home Server HOWTO-Fedora),更有可能文件被写入跨系统共享的 nfs 卷,其中 jenkins 的 UID(运行id jenkins)在它们之间不一样.

对齐 UID(非常重要,因为您必须修复密码加上现有的所有权 UID),然后一切都会好起来的。

推荐阅读 SUSEServerFault

如果你很幸运——所有文件都有一个 UID,你只需要在 passwds 中同步 UID,或者如果只是工作区,可能会把它们都炸掉。

ps:不是真正的 Jenkins 问题,可以在ServerfaultSuperUser上找到更好的指导。

pps:关于 S/O 的帮助也值得一读(搜索“nfsnobody”):
nfsnobody User Privileges ,
chown: invalid user: 'nfsnobody' in fedora 32 after install nfs


推荐阅读