以非 root 身份在另一个 X-session 中启动应用程序

以非 root 身份在另一个 X-session 中启动应用程序

如何以非 root 应用程序会话的形式以 root 身份启动 X 服务器?

应该是这样的

xinit 'su -c openbox user' -- :1

但可以工作:)

答案1

尝试

su -c 'startx openbox -- :1' user

编辑:也可以尝试运行

X :1 &
su -c 'DISPLAY=:1 openbox &' user

答案2

似乎唯一的方法是创建临时.xinitrc文件。以下是脚本:

#!/usr/bin/env bash

username="$USER"
let xdisplay=${DISPLAY:1}+1

# Temporary xinitrc
temp_xinit="$(tempfile -p '.xinit' -s 'rc')" || exit
trap "rm -f -- '$temp_xinit'" EXIT

# Launch X
echo "sudo -u $username $@" > "$temp_xinit"
sudo xinit "$temp_xinit" -- :$xdisplay

使用示例:

$ Xnew.sh /usr/local/games/braid [..options...]

相关内容