如何获取以其他用户身份执行脚本的发起用户用户名?
以其他用户身份运行脚本时获取发起命令的原用户名称
当你以firstUser身份执行sudo -u secondUser运行脚本时,完全可以在脚本内部获取到发起该命令的原用户(firstUser)名称,具体方法如下:
- sudo在执行时会自动设置
SUDO_USER环境变量,这个变量的值就是发起sudo命令的原用户名。 - 在脚本里直接读取这个变量即可,比如Bash脚本中可以这么写:
# 输出发起命令的原用户名称 echo "原用户名称: $SUDO_USER" - 额外补充:如果需要验证原用户的身份,还可以读取
SUDO_UID(原用户的UID)和SUDO_GID(原用户的GID)这两个环境变量。 - 注意:如果脚本不是通过sudo切换用户运行的,
SUDO_USER等相关变量不会存在,脚本里可以先做判断再处理:if [ -n "$SUDO_USER" ]; then echo "发起命令的原用户是: $SUDO_USER" else echo "当前未通过sudo切换用户运行" fi
内容的提问来源于stack exchange,提问作者classicmusiclover
相关产品推荐
相关产品推荐

