安装Jenkins后无法对用户jenkins执行su

qrjkbowd  于 2022-11-04  发布在  Unix
关注(0)|答案(6)|浏览(323)

我已经安装了jenkins,我正试图以Jenkins的身份进入shell来添加ssh密钥。我似乎无法su进入jenkins用户:

[root@pacmandev /]# sudo su jenkins
[root@pacmandev /]# whoami
root
[root@pacmandev /]# echo $USER
root
[root@pacmandev /]#

jenkins用户存在于我的/etc/passwd文件中。Runnin su jenkins要求输入密码,但拒绝我的普通密码。sudo su jenkins似乎什么也不做; sudo su - jenkins也一样,我使用是CentOS。

9nvpjoqh

9nvpjoqh1#

jenkins是一个服务帐户,它没有设计一个shell。一般认为服务帐户不应该能够交互登录。
我一开始没有回答这个问题,因为它是一个重复的问题,已经被转移到服务器故障。我应该回答,而不是在评论中链接到答案。
如果出于某种原因,您希望以jenkins身份登录,则可以使用以下命令进行登录:sudo su -s /bin/bash jenkins

tvmytwxo

tvmytwxo2#

使用以下命令:

su -s /bin/bash jenkins
oipij1gg

oipij1gg3#

当我们安装Jenkins时,它创建了一个Jenkins用户,并带有=“/bin/false”
您将从cat /etc/password文件中获取该信息。

cat /etc/passwd | grep jenkins
jenkins:x:995:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false

最好的方法已经在上面的回答中提到

su - jenkins -s /bin/bash

我们还可以切换到/etc/shells文件中提到任何其他shell。

cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

要使更改永久生效,您可以修改/etc/passwd,但强烈建议不要这样做,因为它是Apache、MySQL、Nginx等服务/应用程序用户。

jenkins:x:995:993:Jenkins Automation Server:/var/lib/jenkins:/bin/bash
i2loujxw

i2loujxw4#

如果你在docker里面使用jenkins,那么你应该尝试以下方法。

  • 首先,您需要运行jenkins容器**“docker start(容器名称或容器ID)"**
  • 然后运行以下命令**“docker exec -it(容器名称或容器ID)bash”**

现在,希望您将作为Jenkins用户使用。

bvjxkvbb

bvjxkvbb5#

下面提到的命令对我很有效
“苏多·苏·Jenkins”

eqzww0vc

eqzww0vc6#

以超级用户身份输入 su - jenkins
此外,在 /etc/passwd 中检查是否允许用户jenkins登录:应该有类似于 /bin/bash/bin/sh 的字符串,当然不应该在行尾有 /bin/false
提示:不要同时使用 susudo

相关问题