我的詹金斯用户究竟发生了什么?

我的詹金斯用户究竟发生了什么?

我已经安装了 Jenkins,并且我的 /etc/passwd 中有 jenkins 作为用户:

jenkins:x:995:993:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/bash
nginx:x:994:992:Nginx web server:/var/lib/nginx:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin

我尝试在 root 时 su - jenkins 并得到以下响应:

[root@li1078-244 ~]# su - jenkins
Last login: Sun Nov  6 02:50:18 UTC 2016 on pts/0
su: failed to execute /bin/bash : No such file or directory

我想 su - jenkins 进入 bash,这样我就可以继续一些配置。我以为我会以詹金斯身份登录,但我不能,我明白了:

ldco2016@DCortes-MacBook-Pro-3 ~ $ ssh jenkins@localhost                             [ruby-2.3.1]
jenkins@localhost's password:
Permission denied, please try again.

答案1

在许多安装中,Jenkins 用户的登录 shell 设置为falsenologin

$ grep jenkins /etc/passwd
jenkins:x:495:441:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/false

因此,如果您尝试登录或切换到 Jenkins 用户,系统将不允许。

解决此问题的最佳方法是使用 Jenkins 用户启动 shell:

$ sudo su - jenkins -s/bin/bash
-bash-4.1$ whoami
jenkins
-bash-4.1$ echo $HOME
/var/lib/jenkins
-bash-4.1$
-bash-4.1$ cd .ssh
-bash-4.1$ pwd
/var/lib/jenkins/.ssh
-bash-4.1$

我使用此方法来安装 SSH 密钥,我希望我的 jenkins 服务器能够在 CLI 级别访问该密钥。

答案2

如果您想以 Jenkins 身份登录,可以使用

sudo su -s /bin/bash jenkins

相关内容