Команда whoami показывает другое имя пользователя в jenkins cli и linux cli, хотя рабочая область i - PullRequest
0 голосов
/ 29 мая 2020

введите здесь описание изображения Привет всем,

Команда «whoami» отображается как другой пользователь. когда я даю эту команду в jenkins cli, она отображается как jenkins , но в том же рабочем пространстве, когда я даю эту команду в linux CLI, она отображается как lokeshk . следил за многими форумами, ссылками и сообществами в inte rnet, но все еще сталкиваюсь с этой проблемой. Я приложил снимок экрана, пожалуйста, посмотрите. Любые клиенты будут признательны.

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 30 мая 2020

Давайте разберемся на примере. Я использую CentOS 7. Если вы установили Jenkins со всеми настройками по умолчанию, будет создан пользователь jenkins. Вы можете проверить это, используя:

[centos@infra ~]$ grep jenkins /etc/passwd
jenkins:x:996:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false

Теперь, если вы запустите задание Jenkins, оно отобразит результат, аналогичный следующему:

enter image description here

Как вы можете видеть выше, я выполнил две команды, 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

Надеюсь, это развеет ваши сомнения.

0 голосов
/ 30 мая 2020

При установке jenkins по умолчанию создается пользователь с именем jenkins, и все операции выполняются под одним и тем же пользователем. Итак, когда вы используете jenkins-cli для проверки whoami, отображается jenkins user.

Видя прикрепленный скриншот, я полагаю, вы вошли в систему linux -cli с пользователем lokeshk, поэтому, когда вы проверяете whoami в linux -cli, отображается lokeshk user.

Примечание. Команда whoami используется для печати имени пользователя, вошедшего в систему, независимо от того, в какой рабочей области вы находитесь сейчас и кем оно было создано.

Пример:

Предположим, что в системе есть два пользователя user1 и user2. user1 создал каталог с именем user1_dir. Если вы войдете в систему с user2 и выполните whoami в user1_dir (или где угодно), это приведет к user2, поскольку user2 - это зарегистрированный пользователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...