Jenkinsユーザーに正確に何が起こっていますか?

Jenkinsユーザーに正確に何が起こっていますか?

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

ルートイン中に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

いくつかの設定を続行できるように、jenkinsをbashに追加したいと思います。 Jenkinsでログインしようとしましたが、ログインできませんでした。次のメッセージが表示されます。

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

答え1

多くのインストールでは、Jenkinsユーザーのログインシェルはまたはにfalse設定されますnologin

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

したがって、Jenkinsユーザーとしてログインまたは切り替えようとすると、システムはそれを許可しません。

この問題を解決する最善の方法は、Jenkinsユーザーとしてシェルを起動することです。

$ 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$

この方法を使用して、JenkinsサーバーがCLIレベルでアクセスできるようにするSSHキーをインストールします。

答え2

Jenkinsとしてログインするには、次のものを使用できます。

sudo su -s /bin/bash jenkins

関連情報