用户脚本的另一种解决方法:确定脚本中的适当环境变量。
您可以使用类似于以下内容的代码段来执行此操作:
getXuser() {
user=`pinky -fw | awk '{ if ($2 == ":'$displaynum'" || $(NF) == ":'$displaynum'" ) { print $1; exit; } }'`
if [ x"$user" = x"" ]; then
startx=`pgrep -n startx`
if [ x"$startx" != x"" ]; then
user=`ps -o user --no-headers $startx`
fi
fi
if [ x"$user" = x"" ]; then
user=$(pinky -fw | awk '{ print $1; exit; }')
fi
if [ x"$user" != x"" ]; then
userhome=`getent passwd $user | cut -d: -f6`
export XAUTHORITY=$userhome/.Xauthority
else
export XAUTHORITY=""
fi
export XUSER=$user
}
for x in /tmp/.X11-unix/*; do
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
getXuser;
if [ x"$XAUTHORITY" != x"" ]; then
export DISPLAY=":$displaynum"
fi
done
(基于ACPI getXuser
函数)
如果您发现.desktop
文件仍然无法正常工作,则可以尝试将其包装pkexec commandline
为sh
摘要,例如:
Exec=sh -c "pkexec --user root script_that_needs_root.sh"
最后一个问题是一个已知的错误,显然是:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690339
https://bugzilla.xfce.org/show_bug.cgi?id=9373
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=650038
https://bugzilla.gnome.org/show_bug.cgi?id=686059
sudo
我看到的其中一项更新说了一些有关将gksu支持集成到sudo中的内容。要查看的另一件事是sudo -A
,根据手册页启动了(可能是)图形登录。