当我运行 test.sh 文件时,Jenkins 控制台显示权限被拒绝错误

mar*_*yed -1 linux permission-denied jenkins

我创建了一个 .sh,其中包含运行 tesng.XML 文件所需的 java 命令,当我在 Jenkins 上运行此 test.sh 文件时,它显示权限被拒绝错误。

詹金斯控制台输出:

Building in workspace /home/dev2/eclipse-workspace/weeklytask
[weeklytask] $ /bin/sh -xe /tmp/jenkins7439378074963422991.sh
+ ./test.sh
[TestNG] Running:
  /home/dev2/eclipse-workspace/weeklytask/enquiryreminder.xml

Starting ChromeDriver 2.40.565383 (76257d1ab79276b2d53ee976b2c3e3b9f335cde7) on port 8120
Only local connections are allowed.

FOLLOW UP REMINDER CRON WEEKLY CHECK TESTCASE FAILED 
PLEASE CHECK THE TIME INTERVAL SETTING 
SET THE TIME INTERVAL TO 600 
FOLLOW UP REMINDER CRON WEEKLY CHECK TESTCASE FAILED 
PLEASE CHECK THE TIME INTERVAL SETTING 
SET THE TIME INTERVAL TO 600 
[[Utils]] Error while writing to /home/dev2/eclipse-workspace/weeklytask/test-output/Suite/Test.html: /home/dev2/eclipse-workspace/weeklytask/test-output/Suite/Test.html (**Permission denied**)
[[Utils]] Error while writing to /home/dev2/eclipse-workspace/weeklytask/test-output/Suite/Test.xml: /home/dev2/eclipse-workspace/weeklytask/test-output/Suite/Test.xml (Permission denied)

===============================================
Suite
Total tests run: 1, Failures: 1, Skips: 0
===============================================

[[Utils]] Error while writing to test-output/junitreports/TEST-verify.enquiryremindertest.xml: test-output/junitreports/TEST-verify.enquiryremindertest.xml (Permission denied)
Run Code Online (Sandbox Code Playgroud)

Sha*_*han 6

Jenkins 使用用户jenkins. 如果您使用其他用户创建了文件,则该文件可能存在权限问题。要解决此问题,请更改文件的权限并允许其他用户执行该脚本。您可以使用

chmod +x test.sh
Run Code Online (Sandbox Code Playgroud)

该目录eclipse-workspace属于dev2用户,此时jenkins用户正在尝试向其中写入数据。授予jenkins对此文件夹的写入权限。尝试

sudo chmod -R a+rw /home/dev2/eclipse-workspace
Run Code Online (Sandbox Code Playgroud)

有关权限的更多详细信息,您可以查看此教程