Давайте разберемся на примере. Я использую CentOS 7. Если вы установили Jenkins со всеми настройками по умолчанию, будет создан пользователь jenkins
. Вы можете проверить это, используя:
[centos@infra ~]$ grep jenkins /etc/passwd
jenkins:x:996:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false
Теперь, если вы запустите задание Jenkins, оно отобразит результат, аналогичный следующему:
Как вы можете видеть выше, я выполнил две команды, ps -ef
и whoami
. Мы видим, что приложение Jenkins запущено от имени пользователя jenkins
. Вывод whoami
также равен jenkins
.
Теперь я вошел в систему как пользователь centos
. Вы можете видеть это в выводе, показанном ниже:
[centos@infra ~]$ whoami
centos
Каталог переключения не не влияет на вывод whoami
[centos@infra ~]$ pwd
/home/centos
[centos@infra ~]$ whoami
centos
[centos@infra ~]$ cd /var/lib/jenkins/workspace/job-a
[centos@infra job-a]$ whoami
centos
Теперь, если я хочу видеть тот же вывод в командной строке для whoami
, как я вижу в журнале Jenkins, тогда мне сначала придется переключить на jenkins
пользователя. Поскольку jenkins
по умолчанию настроен для работы как service account
, оболочка (/bin/false
) ему не назначена, как вы можете видеть в первом выводе выше. Чтобы развеять ваши сомнения, я временно изменю оболочку на /bin/bash
.
[centos@infra job-a]$ sudo vim /etc/passwd
[centos@infra job-a]$ grep jenkins /etc/passwd
jenkins:x:996:993:Jenkins Automation Server:/var/lib/jenkins:/bin/bash
Теперь, если я попытаюсь переключиться на пользователя jenkins
и наблюдать результат whoami
, вы увидите, что вы хотели увидеть. :)
[centos@infra job-a]$ sudo su - jenkins
Last login: Sat May 30 09:48:56 UTC 2020 on pts/0
-bash-4.2$ whoami
jenkins
-bash-4.2$ cd /var/lib/jenkins/workspace/job-a
-bash-4.2$ whoami
jenkins
Надеюсь, это развеет ваши сомнения.