2015-10-26 38 views
2

我已經部署了最新的詹金斯WAR到Tomcat 6服務器上這個味道的Linux ...如何讓Jenkins WAR文件在不同的用戶下運行?

[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 

我有建立一個搖籃項目的工作。構建成功後,我想將新生成的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 

什麼我需要做給詹金斯權限在複製這個文件?我不想目錄的燙髮改變爲777

編輯:在響應給出了答案,我添加了一個「WHOAMI」到構建腳本...

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

和輸出是

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

所以我已經運行在該用戶目錄的所有者。

回答

1
  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. 如果兩個或更多用戶需要的權限到該目錄,那麼你就可以創建一個usersgroup,然後只給權限到group。看到this & this

+1

嘿,我添加了「WHOAMI」到語句,但它輸出alreday誰擁有我tryihgn複製到該目錄的用戶的用戶。 – Dave

+0

你可以試試'cp -f ./build/libs/myproject.war/usr/share/tomcat6/webapps'嗎? 並重新啓動服務器。 –

+0

請參閱'。/ build/libs/myproject.war'的權限。你可以嘗試從詹金斯終端複製作品。 –

相關問題