我已经安装了jenkins,我正试图进入一个shell作为Jenkins添加一个ssh密钥。我似乎无法进入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上。
答案 0 :(得分:204)
jenkins是一个服务帐户,它没有设计的shell。通常认为服务帐户不能以交互方式登录。
我最初没有回答这个,因为它是duplicate of a question that has been moved to server fault。我应该在评论中回答而不是与答案相关联。
如果由于某种原因你想以jenkins身份登录,你可以这样做:
sudo su -s /bin/bash jenkins
答案 1 :(得分:1)
使用以下命令:
su -s /bin/bash jenkins
答案 2 :(得分:0)
当我们安装 Jenkins 时,它创建了一个 Jenkins 用户,其值为 = "/bin/false"
您将从 cat /etc/password 文件中获取该信息。
cat /etc/passwd | grep jenkins
jenkins:x:995:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false
@thekbb 上面已经提到了最好的方法
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
答案 3 :(得分:-1)
如果在docker内部使用jenkins。然后,您应该尝试以下操作。
首先,您需要运行jenkins容器 “泊坞窗开始(容器名称或容器ID)”
然后运行此命令“ docker exec -it(容器名称或容器ID)bash”
现在希望您将以詹金斯用户身份使用。
答案 4 :(得分:-9)
以root用户身份输入 su - jenkins
另外,检查 / etc / passwd 是否允许用户jenkins登录:应该有类似 / bin / bash 或 / bin / sh的内容,当然不是行尾的 / bin / false 。
提示:您不能同时使用 su 和 sudo 。