Today I was setting up a new Jenkins server to run docker image builds and pushes to Amazon ECR.
Jenkins installed fine, as did the AWS CLI, and docker. Unfortunately, when I went to use docker against AWS from Jenkins, I had some integration issues at first (which is less than surprising).
Anyway! this required me to become the “jenkins” user which Jenkins runs as by default when installed with its normal installers. Unfortunately, when you try to “su – jenkins”, you will find that not much happens.
I found in this stack-overflow post that this is because the jenkins user is a service account not made for interactive terminals. Here is the quote:
Jenkins is a service account, it doesn’t have a shell by design. It is generally accepted that service accounts shouldn’t be able to log in interactively
…
If for some reason you want to login as jenkins, you can do so with:
sudo su -s /bin/bash jenkins
So, just do the following and you’ll be fine.
sudo su -s /bin/bash jenkins