ユーザー名はログインしたユーザーの代わりにrootとして表示されますか?

ユーザー名はログインしたユーザーの代わりにrootとして表示されますか?

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。ユーザーに実際のログインシェルがないため、次のようになります。実際、このユーザーを対話的に使用しないでください。正常動作中。

関連情報