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

관련 정보