Jenkinsfile 中的“脚本”步骤 - 权限被拒绝

2023-12-30

谁能解释一下,为什么我在“脚本”步骤中收到“权限被拒绝”?

我以用户身份运行此 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(使用前将#替换为@)

Jenkinsfile 中的“脚本”步骤 - 权限被拒绝 的相关文章

随机推荐