Answers:
实际上,它确实以root用户身份运行它们。但是,您正在发生的事情是,在 sudo
运行之前先评估了反向滴答声,因为它们是评估命令所必需的。更直接地,为什么不这样:
sudo whoami
whoami
实际上,您的后壁虱是在子外壳中以当前用户身份进行评估的,这就是为什么看到您所做的事情的原因。
sudo
。但是从阅读xyr的答案来看,似乎并非如此。
这里似乎有一些推测……
反引号显然正在按照其他人的解释做,whoami
在调用“ sudo”之前扩展,并且使反引号不返回“根”,正如预期的那样。
但是了解sudo(8)实际发生的事情很有用。所以我实际上看了手册页!
“实际有效的uid和gid设置为与目标用户的匹配”。
因此,似乎观察到的行为与有效用户ID和实际用户ID之间的差异无关。
做“ sudo printenv”并将其与“ printenv”进行比较也是说明性的,这实际上让我有些惊讶。它显示[i]一些[/ i]导出的变量可用而其他的则不可用:它报告调用用户的HOME,PATH,PS1,SHELL,TERM和EDITOR,但不报告诸如MANPATH,CVSROOT,LD_LIBRARY_PATH或ENV。这似乎有些奇怪,因为它可能导致程序的行为与原始用户或root用户不同。
whoami
?只是说sudo whoami ..返回根源