如何获取试图以其他用户身份运行脚本的用户的用户名?



我让一个用户作为另一个用户运行一个脚本

假设我的用户是firstUser然后执行以下命令:
sudo -u **secondUser** ....

是否有可能以某种方式获得用户(firstUser)的名称?谁试图在脚本中以secondUser的身份运行该命令

?

在我的系统上,sudo -uusersome_script ...运行some_script作为sudo的子进程。

因此,知道$$是shell的PID,而$PPID是其父PID的派生,您应该能够执行以下操作:
#! /bin/bash
PARENT_USER=$( ps -eo user= $PPID )
if [ "$PARENT_USER" != "$( ps -eo user= $$ )" ]; then
# I'm not the same user as my parent
...
fi

检查ps -eo user= $$比依赖$USER更安全,因为后者可能被父进程覆盖。此外,如果名称"太长">

,允许ps将其用户格式说明符解释为十进制数字,而不是文本用户名。

相关内容

  • 没有找到相关文章

最新更新