jenkins - 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 为每个作业创建此作业文件夹时,该文件夹必须对主机中的用户具有写入权限?
解决方案
首先,您要运行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),然后一切都会好起来的。
如果你很幸运——所有文件都有一个 UID,你只需要在 passwds 中同步 UID,或者如果只是工作区,可能会把它们都炸掉。
ps:不是真正的 Jenkins 问题,可以在Serverfault或SuperUser上找到更好的指导。
pps:关于 S/O 的帮助也值得一读(搜索“nfsnobody”):
nfsnobody User Privileges ,
chown: invalid user: 'nfsnobody' in fedora 32 after install nfs
推荐阅读
- google-cloud-platform - Google Dataprep/Trifacta - 加入三个数据集,重复数据删除但维护不匹配的记录
- r - Tidyverse - rsample。nested_cv + group_vfold_cv = 错误。插入符号上的嵌套交叉验证(trainControl)
- vb.net - 在 Linq 中排序,其中一些日期是炒作
- python - 重命名实例而不重复
- windows - Server 2012 MS 更新导致引导循环 - 如何停止或诊断?
- ios - 将数据从 AppDelegate 传递到 ViewController
- html - DIV 覆盖问题 - Ionic V4(角度)
- angular - Angular 用户空闲设置 20 分钟:
- mysql - 使用 mysql 中的分数每月创建蜡烛
- ios - 将字符串和 URL 的 Swift 数组保存到 NSUserDefaults 会导致崩溃,为什么/如何修复?