[英]whoami command is showing different user name in jenkins cli and linux cli although workspace i
在安装jenkins
时,默认情况下它会创建一个名为jenkins
的用户,并且所有操作都在同一用户下执行。 因此,当您使用 jenkins-cli 检查whoami
时,它会显示jenkins
用户。
看到你附加的截图,我相信你用lokeshk
用户登录了 linux-cli,所以当你在 linux-cli 中检查whoami
时,它显示的是lokeshk
用户。
注意: whoami
命令用于打印登录用户名,无论您现在所在的工作区和创建者如何。
例子:
让我们假设一个系统有两个用户user1
和user2
。 user1
创建了一个名为user1_dir
的目录。 如果您使用user2
登录并在user1_dir
(或任何地方)执行whoami
,它将导致user2
因为user2
是登录用户。
让我们用例子来理解它。 我正在使用 CentOS 7。如果您使用所有默认值安装了 Jenkins,它将创建一个用户jenkins
。 您可以使用以下方法进行检查:
[centos@infra ~]$ grep jenkins /etc/passwd
jenkins:x:996:993:Jenkins Automation Server:/var/lib/jenkins:/bin/false
现在,如果您运行 Jenkins 作业,它将显示 output 类似于以下内容:
正如您在上面看到的,我运行了两个命令, ps -ef
和whoami
。 我们可以看到 Jenkins 应用程序正在以用户jenkins
运行。 whoami
的 Output 也是jenkins
。
现在,我以用户centos
身份登录机器。 您可以通过如下所示的 output 看到:
[centos@infra ~]$ whoami
centos
切换目录不影响whoami
的output
[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
看到相同的 output,就像我在 Jenkins 日志中看到的那样,那么我首先必须切换到jenkins
用户。 由于jenkins
默认配置为作为service account
运行,因此没有 shell ( /bin/false
) 分配给它,正如您在上面的第一个 Z78E6221F6393D1356DZ6681DB398F14CE 中看到的那样。 为了消除您的疑问,我将暂时将 shell 更改为/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
的 output ,你会看到你想看到的。 :)
[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
希望能消除您的疑问。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.