如何通过现代初始化系统以 root 身份运行的脚本请求用户使用 GUI 输入?

如何通过现代初始化系统以 root 身份运行的脚本请求用户使用 GUI 输入?

我有“oneshot”类型的 Systemd 服务,由 Udev 在设备插入时启动。服务正在以 root 身份启动 shell 脚本。该脚本需要用户输入才能按预期完成其工作。用户登录到 GUI 会话(暂时是 Xorg,但不是强制性的)。

以 root 身份运行的进程如何向运行 GUI 会话的常规当前活动用户请求输入?如果是敏感数据或非敏感数据怎么办?如果是的话呢不是奥格?

将数据放入变量的一种方法是脚本的以下部分:

#!/bin/bash
while read session_id login ; do
    if [ "$( loginctl show-session -p State "${session_id}" )" == "State=active" ]
    then
        break
    fi
done <<< "$( loginctl list-sessions --no-legend | awk '{print $1 " " $3}' )"

if [ -n "${login}" ] ; then
    string="$(  DISPLAY=:0.0 \
            XAUTHORITY="/home/${login}/.Xauthority" \
            zenity --entry )"
else
    echo "WARNING:${0}: Do nothing as no one logged in."
    exit
fi

但例如,它需要对 DISPLAY 进行复杂的评估。而且只有 Xorg 吗?

使用 Linux 常规工具实现此目的的最佳方法是什么?

谢谢你!

相关内容