我已经在这种Linux版本上将最新的Jenkins WAR部署到Tomcat 6服务器......
[daveaip-30-888-22-999 ~]$ uname -a
Linux ip-30-888-22-999 4.1.7-99.99.amzn1.x86_64 #1 SMP Mon Sep 14 23:20:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
我有一个构建Gradle项目的工作。构建成功后,我想将新生成的WAR文件复制到Tomcat 6目录。我有这个shell脚本作为额外的构建步骤...
cp ./build/libs/myproject.war /usr/share/tomcat6/webapps
Tomcat6 webs目录具有以下权限......。
[daveaip-30-888-22-999 ~]$ ls -al /var/lib/tomcat6/webapps
total 77876
drwxrwxr-x 4 tomcat tomcat 4096 Oct 23 19:52 .
但命令因此错误而失败......
+ cp ./build/libs/myproject.war /usr/share/tomcat6/webapps
cp: cannot create regular file ‘/usr/share/tomcat6/webapps/myproject.war’: Permission denied
我需要做些什么来授予Jenkins复制此文件的权限?我不想将目录的perms更改为777。
编辑:在回答给出的答案时,我添加了一个" whoami"进入构建脚本......
whoami
cp ./build/libs/myproject.war $CATALINA_HOME/webapps
输出
+ whoami
tomcat
+ cp ./build/libs/myproject.war /usr/share/tomcat6/webapps
所以我已经在作为目录所有者的用户下运行。
答案 0 :(得分:1)
然后查看运行cp ./build/libs/myproject.war /usr/share/tomcat6/webapps
命令的用户,您可以向该用户授予权限。
在build
- >中运行此命令Shell Script
的{{1}}部分。{/ 1}}。{/ 1}}
configure
然后,从teminal本地运行此命令以更改目录的所有权。
$ whoami // show the user, say 'xyz'
如果两个或更多用户需要该目录的权限,那么您可以使用$ sudo chown -R xyz: /var/lib/tomcat6/webapps // give permission to that user
创建group
,然后只授予该users
权限。见this& this