Não é possível usar o su para o usuário jenkins após instalar o Jenkins

93

Instalei o Jenkins e estou tentando entrar em um shell como Jenkins para adicionar uma chave ssh. Não consigo entrar no usuário jenkins:

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

O usuário jenkins existe em meu arquivo / etc / passwd. Runnin su jenkinspede uma senha, mas rejeita minha senha normal. sudo su jenkinsnão parece fazer nada; mesmo para sudo su - jenkins. Estou no CentOS.

Sfendell
fonte
usuário existe ... mas provavelmente não tem shell, consulte superuser.com/questions/566041/…
thekbb
Você não precisa usar o sudo quando estiver como root. Embora não machuque.
thekbb
11
sudo usermod -s /bin/bash jenkins
jgb
1
não adicione um shell ao Jenkins - está faltando um por design. Geralmente, você não deseja que as contas de serviço possam fazer login interativamente.
thekbb

Respostas:

232

jenkins é uma conta de serviço, não tem um shell por design. É geralmente aceito que as contas de serviço não devam ser capazes de fazer login interativamente.

Não respondi a esta pergunta inicialmente porque é uma duplicata de uma pergunta que foi movida para falha do servidor . Eu deveria ter respondido em vez de vinculado à resposta em um comentário.

se por algum motivo você quiser fazer login como jenkins, poderá fazer isso com: sudo su -s /bin/bash jenkins

thekbb
fonte
8
Obrigado! Eu entendo que adicionar um shell ao Jenkins parece uma má ideia; Eu estava fazendo isso porque havia comandos no meu processo de compilação que eu não tinha problemas para executar a partir do meu shell, mas a compilação estava falhando porque não conseguia executá-los. Eu queria entrar como Jenkins e ver se havia problemas de permissão.
sfendell
editou a resposta para incorporar as informações exatamente corretas de @mrg sobre a necessidade sudo.
thekbb
1
existe uma senha padrão que ele pede porque não me lembro de configurar uma senha na instalação.
Joe Lloyd
@mrg Que senha você usou?
Nabin
@JoeLloyd Você descobriu a senha padrão? Qual é a senha?
Nabin
0

Use o comando abaixo:

su -s /bin/bash jenkins
Sudipto Das
fonte
-2

Se você estiver usando Jenkins dentro do docker. Então você deve tentar o seguinte.

  • Primeiro você precisa executar o jenkins container "docker start (container-name ou container-id)"

  • Em seguida, execute este comando "docker exec -it (container-name ou container-id) bash"

Agora, esperançosamente, você estará usando como um usuário jenkins.

ashik ahmed
fonte
-11

como root, digite su - jenkins

Além disso, verifique em / etc / passwd se o usuário jenkins tem permissão para fazer logon: deve haver algo como / bin / bash ou / bin / sh , certamente não / bin / false no final da linha.

Dica: você não usa su e sudo ao mesmo tempo.

rotscher
fonte
1
esse é exatamente o comando que o OP tentou ... você está correto quanto ao motivo pelo qual jenkins não consegue efetuar login - mas eu discordo da sua solução.
thekbb