tomcat - 如何让 Jenkins WAR 文件在不同用户下运行?

标签 tomcat jenkins permissions

我已经将最新的 Jenkins WAR 部署到了这种 Linux 风格的 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 复制此文件的权限?我不想将目录的权限更改为 777。

编辑:为了响应给出的答案,我在构建脚本中添加了一个“whoami”...

whoami
cp ./build/libs/myproject.war $CATALINA_HOME/webapps

输出是

+ whoami
tomcat
+ cp ./build/libs/myproject.war /usr/share/tomcat6/webapps

所以我已经在目录所有者的用户下运行。

最佳答案

  1. 查看哪个用户正在运行cp ./build/libs/myproject.war /usr/share/tomcat6/webapps然后,您可以向该用户授予权限。

  2. build 中运行此命令-> Shell Script您工作的部分configure .

    $ whoami    // show the user, say 'xyz'
    

    然后,从终端本地运行此命令以更改目录的所有权。

    $ sudo chown -R xyz: /var/lib/tomcat6/webapps  // give permission to that user
    
  3. 如果两个或更多用户需要该目录的权限,那么您可以创建 groupusers ,然后授予 group 权限。请参阅this & this

关于tomcat - 如何让 Jenkins WAR 文件在不同用户下运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33352044/

相关文章:

linux - Linux服务器var文件夹的默认权限是什么?

用于读写和可执行权限的linux命令

IOS 上的 Android post 请求

java - tomcat 8 security 基于表单的身份验证自动登录

jenkins - 在Jenkins下运行时,maven-gpg-plugin失败,出现 “Inappropriate ioctl for device”

jenkins - 将 Jenkins 管道中的交互式输入读取到变量

java - 在 spring + tomcat 中记录 REST API 响应时间的最佳方式

java - eclipse : Element type "Context" must be declared

java - Ant/ivy 脚本有助于删除具有阈值的旧 Artifactory

mysql - 如何锁定 PHPMyAdmin 中的表以使其无法修改?