You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取以其他用户身份执行脚本的发起用户用户名?

以其他用户身份运行脚本时获取发起命令的原用户名称

当你以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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:20:36