【问题标题】:Can't su to user jenkins after installing Jenkins安装 Jenkins 后无法 su 到用户 jenkins
【发布时间】:2013-08-05 21:48:08
【问题描述】:

我已经安装了 jenkins,我正试图以 Jenkins 的身份进入 shell 以添加 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 上。

【问题讨论】:

  • 用户存在...但可能没有外壳,请参阅superuser.com/questions/566041/…
  • root 用户不需要 sudo。虽然不疼。
  • sudo usermod -s /bin/bash jenkins
  • 不要在 jenkins 中添加一个 shell - 它是有意遗漏的。通常,您不希望服务帐户能够以交互方式登录。

标签: linux unix jenkins


【解决方案1】:

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

我最初没有回答这个问题,因为它是duplicate of a question that has been moved to server fault。我应该回答而不是在评论中链接到答案。

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

【讨论】:

  • 谢谢!我知道向 jenkins 添加 shell 似乎是个坏主意。我之所以这样做,是因为在我的构建过程中有一些命令,我​​从我的 shell 运行没有问题,但是构建失败了,因为它无法运行它们。我想以詹金斯的身份进入,看看是否存在权限问题。
  • 编辑了答案以包含 @mrg 关于需要 sudo 的完全正确信息。
  • 是否有它要求的默认密码,因为我不记得在安装时设置了密码。
  • @mrg 你用了什么密码?
  • @JoeLloyd 你知道默认密码了吗?密码是多少?
【解决方案2】:

使用以下命令:

su -s /bin/bash jenkins

【讨论】:

    【解决方案3】:

    当我们安装 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
    

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

        【解决方案5】:

        以 root 身份输入 su - jenkins

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

        提示:您不要同时使用 susudo

        【讨论】:

        • 这正是 OP 尝试的命令......关于詹金斯无法登录的原因你是正确的 - 但我不同意你的解决方案。
        猜你喜欢
        • 2022-07-03
        • 2021-05-05
        • 1970-01-01
        • 1970-01-01
        • 2022-07-28
        • 2011-09-08
        • 2018-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多