获取 root 脚本 ubuntu 上的当前用户

fab*_*377 1 bash shell ubuntu

我为网络调度程序编写了一个脚本/etc/NetworkDispatcher/dispatcher.d/。如何获取当前登录的用户?

我已经尝试过这些命令:

$USER
$LOGNAME
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

Kao*_*oru 5

如果使用 /usr/bin/sudo 运行脚本,您可以从 $SUDO_USER 环境变量访问原始用户。

例如,如果这是脚本 test.sh 的内容:

#!/bin/sh

echo "USER:      $USER"
echo "SUDO_USER: $SUDO_USER"
Run Code Online (Sandbox Code Playgroud)

然后,如果您以“alex”身份运行它:

alex@yuzu:~$ ./test.sh 
USER:      alex
SUDO_USER: 
Run Code Online (Sandbox Code Playgroud)

如果你通过 sudo 运行它:

alex@yuzu:~$ sudo ./test.sh
USER:      root
SUDO_USER: alex
Run Code Online (Sandbox Code Playgroud)