2017-09-11 42 views
0

Jenkins 2.46.2。jenkins使用的用戶在jenkins工作運行時不是組的一部分

的Ubuntu 14.04

詹金斯使用用戶www-data

[test] $ /bin/sh -xe /tmp/hudson7967754688382064194.sh 
+ whoami 
www-data 
Finished: SUCCESS 

當我使用SSH連接實例,並切換到用戶www-data和檢查什麼團體它屬於我可以看到docker組。

$ id 
uid=33(www-data) gid=33(www-data) groups=33(www-data),998(docker) 

當我檢查什麼呢羣體用戶屬於喲通過運行詹金斯的工作,我看不到docker

sh("id") 
//output: 
uid=33(www-data) gid=33(www-data) groups=33(www-data) 

因此,我無法執行docker命令。爲什麼這個小組在這種情況下失蹤了?

+0

您確定jenkins是由「www-data」用戶執行嗎? –

+0

@DurdenP我更新了帖子。當我運行'whoami'時,它會說'www-data'。 Alos jenkins進程屬於www-data。工作區和JENKINS_HOME屬於用戶www-data。 – raitisd

回答

0

如果你已經使用Apt安裝了Jenkins作爲服務,Jenkins以jenkins用戶身份運行。執行以下操作:

$usermod -a -G docker jenkins 
+0

我不確定詹金斯是如何安裝的。 Jenkins在這種情況下使用用戶「www-data」。如果我使用ssh,我可以看到這個用戶是docker組的一部分。 – raitisd

+0

Jenkins作爲Java .jar歸檔文件運行。如果你做'ps -aef | grep java'該jar是作爲jenkins用戶運行的。詹金斯用戶不習慣ssh進入系統。將jenkins用戶添加到碼頭組,它會工作。 – hapx101

+0

不是,在這臺機器上它作爲www-data用戶運行。用戶'jenkins'也存在於實例中,但未被使用。在我發現使用www-data之前,我在一開始就將其添加到了docker組。因此,用戶'jenkins'和'www-data'被添加到'docker'組中。問題是,當詹金斯的工作運行時,用戶不是某個組的一部分。 – raitisd

相關問題