101

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

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

jenkins 用户存在于我的 /etc/passwd 文件中。Runninsu jenkins要求输入密码,但拒绝了我的正常密码。sudo su jenkins似乎什么也没做;对于sudo su - jenkins. 我在 CentOS 上。

4

5 回答 5

251

jenkins 是一个服务帐户,它没有设计外壳。人们普遍认为服务帐户不应该能够以交互方式登录。

我最初没有回答这个问题,因为它与已移至 server fault 的问题重复。我应该在评论中回答而不是链接到答案。

如果由于某种原因你想以 jenkins 身份登录,你可以这样做: sudo su -s /bin/bash jenkins

于 2013-08-06T13:03:25.013 回答
4

使用以下命令:

su -s /bin/bash jenkins
于 2020-07-15T05:53:00.817 回答
0

当我们安装 Jenkins 时,它使用 = "/bin/false" 创建了一个 Jenkins 用户

您将从 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
于 2021-03-03T20:30:28.623 回答
-1

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

  • 首先你需要运行 jenkins 容器 “docker start (container-name or container-id)”

  • 然后运行这个命令“docker exec -it (container-name or container-id) bash”

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

于 2018-11-16T06:55:00.237 回答
-11

以 root 身份输入su - jenkins

此外,检查/etc/passwd用户 jenkins 是否允许登录:应该有类似/bin/bash/bin/sh的内容,当然不是/bin/false在行尾。

提示:不要同时使用susudo

于 2013-08-06T08:35:42.577 回答