21

I have a redhat linux server running jenkins. I setup jenkins as per the instructions mentioned here https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions The problem is that I need to switch to the jenkins user in order to solve an ssh connection issue, but I cannot.

I try

su - jenkins

however after I enter that, the terminal remains[root@redhat ~]# and a whoami reveals that I am still root I have looked at the files /etc/passwd etc/shadow and see that jenkins is a user, but I don't have enough experience to tell what I have done wrong in setting up this jenkins user.

any ideas would be helpful, or places to look for clues?

fixer1234
  • 27,064
  • 61
  • 75
  • 116
OrwellHindenberg
  • 338
  • 1
  • 2
  • 7

3 Answers3

38

is jenkins a service account with no shell configured in /etc/password If that's it try sudo su -s /bin/bash jenkins

thekbb
  • 496
  • 4
  • 8
  • 8
    That's the way! Now for anyone that has similar problems /var/lib/jenkins acts as the home dir for jenkins user and will have .ssh –  Mar 14 '13 at 16:06
  • 2
    You could also run `sudo -u jenkins bash` – B2F Mar 06 '15 at 14:29
2

Do not change the /etc/passwd file. The interactive login is set to false for a good reason, the list security implications is too long to describe here.

Instead, run this as root:

sudo su - jenkins -s /bin/bash
Max
  • 21
  • 1
0

The other option would be to change the shell for jenkins.

Run the below command:

chsh -s /bin/bash jenkins

Now you will be able to switch as jenkins user by just passing su jenkins

mrajiv
  • 11
  • Do not do this. the account lacks a shell for good reason - service accounts shouldn't be able to log in interactively. This is a security risk with no real benefit. – thekbb May 10 '16 at 16:20