如何解决Jenkins工作区文件夹权限
这是我的curl -F 'data=@./resourcesByFileId.png' -F 'props={"title":"resource title"}' http://localhost:27583/resources
文件夹。 (在执行ls -la时)
async create(fd: FormData) {
const resp = await axios.post<ResourceGetRes>(
ApiUtil.baseUrl('/resources'),fd,{
headers: fd.getHeaders(),},)
return resp.data
}
const fd = new FormData()
const path = resolve(__dirname,'../resource/resourcesByFileId.png')
console.log('test create: ',path)
fd.append('props',JSON.stringify({ title: '图片标题' }))
fd.append('data',createReadStream(path))
await resourceApi.create(fd)
此工作空间内有一个文件夹。我创建工作时,该文件夹是由Jenkins自动创建的。该工作名称为 describe('diff fetch and axios',() => {
function getFormData() {
const fd = new FormData()
const path = resolve(__dirname,'../resource/resourcesByFileId.png')
const title = 'image title'
fd.append('props',JSON.stringify({ title: title }))
fd.append('data',createReadStream(path))
return fd
}
it('test create by fetch',async () => {
const fd = getFormData()
const resp = await fetch(ApiUtil.baseUrl('/resources'),{
method: 'post',body: fd,})
const json = await resp.json()
console.log('json: ',json)
})
it.skip('test create by axios',async () => {
const fd = getFormData()
const resp = await axios.post(ApiUtil.baseUrl('/resources'),})
console.log('resp.data: ',resp.data)
})
})
这是文件夹
jenkinx/jenkins_home/workspace
如您所见,主机用户对该文件夹没有写权限,并且主机中的脚本无法写入Sandbox_Test-Vinod_M
在编写脚本之前,我必须先为此文件夹手动设置权限。我们如何确定Jenkins为每个作业创建此作业文件夹时,该文件夹必须对主机中的用户具有写权限?
解决方法
首先,您要运行ls -n
来查找文件/目录的 real UID / GID,而不是显示名称。接下来,检查该用户是否出现在您的/etc/passwd
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
您需要在ls -n
中找到显示的UID,而不是在nfsnobody
中找到-65534。
“ nfsbody是文件的所有者(RHEL NFS reference,Linux Home Server HOWTO - Fedora)不太可能,更不可能将文件写入到jenkins的UID(运行{{1 }})在他们之间是不一样的。
对齐UID(这很简单,因为您必须修复passwd加上现有的所有权UID),然后一切正常。
建议reading from SUSE和ServerFault。
如果幸运的话-所有文件都有一个UID,您只需要在passwds中同步UID,或者如果只是工作区,则可以将它们全部删除。
ps:并不是真正的詹金斯问题,可以在Serverfault或SuperUser上找到更好的指导。
pps:关于S / O的一些帮助也值得一读(搜索“ nfsnobody”):
nfsnobody User Privileges,
chown: invalid user: ‘nfsnobody’ in fedora 32 after install nfs
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。