사용자 이름이 로그인한 사용자 대신 루트로 표시됩니까?

사용자 이름이 로그인한 사용자 대신 루트로 표시됩니까?

CentOS 서버가 있고 사용자로 로그인했습니다.젠킨스하지만 사용자 이름은 다음과 같이 표시됩니다.뿌리바꾸다젠킨스

[root@centos-7-1 ~]# sudo su - jenkins  
Last login: Sat Jul 14 20:21:16 UTC 2018 on pts/0
[root@centos-7-1 ~]# hostname  
centos-7-1

sudoers 파일을 확인하고 이것을 찾았는데, 이것이 문제와 관련이 있는지 잘 모르겠습니다.

[root@centos-7-1 etc]# cat group | grep jenkins
jenkins:x:993:

[root@centos-7-1 ~]# grep jenkins /etc/passwd 
jenkins:x:996:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false
[root@centos-7-1 ~]#

whoami사용자 전환 후 실행 하면 다음과 같은 결과 가 나타납니다.

[root@centos-7-1 ~]# su - jenkins 
Last login: Sat Jul 14 20:33:18 UTC 2018 on pts/0 
[root@centos-7-1 ~]# whoami 
root

답변1

아, 그거 쉽네요. 사용자 jenkins정의는 /etc/passwd다음과 같습니다.

jenkins:x:996:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false

라고 적힌 마지막 항목을 참조하세요 /bin/false. jenkins 사용자에 대해 정의된 유효한 쉘이 없으므로 세션이 즉시 종료되고 시작한 루트 쉘로 돌아갑니다.

답변2

/bin/false사용자의 로그인 쉘은 사용자가 일반적인 수단을 통해 시스템에 로그인하는 것을 방지하기 때문입니다. 이 설정은 보안 조치이므로 변경하고 싶지 않습니다. 대상 사용자로 전환할 때 다른 쉘을 요청하십시오.

sudo su -s /bin/bash jenkins

즉, 만약 당신의진짜사용자로서의 대화형 쉘 세션이 필요합니다 jenkins. 사용자에게 실제 로그인 셸이 없으므로 다음과 같습니다.실제로 이 사용자를 대화형으로 사용하면 안 됩니다.정상 작동 중.

관련 정보