我已经安装了 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 设置为false
或nologin
:
$ 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