我发布了一些在Linux中自动装载和卸载磁盘的脚本,现在我收到了一个请求,要求将磁盘归当前登录的用户所有。也就是说,当前持有gui的用户已被占用(在这种情况下,我们不关心终端用户)。
我该如何获取用户名?可能有许多不同的窗口管理器,因此,如果不存在wm独立解决方案,则可能需要根据wm不同的解决方案。
首先,一个仅针对Gnome的解决方案可能就足够了。
脚本在任何用户会话之外运行(由udev触发)
如果您正在运行bash脚本,则当前登录用户的用户名应存储为环境变量$USER
或$USERNAME
。env
命令将为您提供当前shell中所有环境变量的列表。
现在,如果您想要当前用户的用户id,请使用id
命令。
w -hs | grep tty7 | cut -f1 -d ' '
似乎可以在xserver连接到tty7
的情况下工作(相应地进行修改)。
Gnome应该启动一个名为gdm(Gnome显示管理器)的进程。
如果你为它grep,它应该会把运行它的用户传给你
ps aux | grep gdm