谁能解释一下,为什么我在“脚本”步骤中收到“权限被拒绝”?
我以用户身份运行此 Jenkins 作业vagrant
。
我什至打印了所有信息:确实是vagrant
用户,属于fred
其所有者为的组/opt/ab/cd/tests/
文件夹。但尽管如此,什么也做不了,就像基本的mkdir
stage('Run tests') {
BDD_RESULTS = sh (
script: '(pushd /opt/ab/cd/tests/; whoami; groups vagrant; ls -la; mkdir my_test || true; popd)',
returnStdout: true
)
println "BDD=$BDD_RESULTS"
...
}
result:
+ whoami
+ groups vagrant
+ ls -la
+ mkdir my_test
mkdir: cannot create directory ‘my_test’: Permission denied
+ true
+ popd
[Pipeline] echo
BDD=/opt/ab/cd/tests/ ~/.jenkins/workspace/test-build
vagrant
vagrant : vagrant redis fred
drwxrwxr-x. 4 fred fred 179 Apr 1 21:13 .
drwxrwxr-x. 7 fred fred 92 Apr 1 21:13 ..
~/.jenkins/workspace/test-build
This mkdir
当然,这只是一个例子,并不完全是我尝试这样做的。
如果我设置权限tests
文件夹到777
,然后它就可以工作了。但我想保留775
.
我使用以下命令运行 Jenkins:java -jar /home/vagrant/jenkins.war &> /home/vagrant/jenkins.out&
, CentOS 7.7
将您的脚本放在script
阻止然后尝试。
像这样的东西
pipeline {
stages {
stage('Run tests') {
steps {
script {
BDD_RESULTS = sh (
script: '(pushd /opt/ab/cd/tests/; whoami; groups vagrant; ls -la; mkdir my_test || true; popd)',
returnStdout: true
)
println "BDD=$BDD_RESULTS"
...
}
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)