Sunday, September 27, 2009

在Linux上以另一个用户的身份运行图形界面程序

English Version

假设用户user1想要以user2的身份运行图形界面程序gnome-terminal。他可以:

1. 以root帐户登录(或让root帮忙)后设置可运行sudo命令的用户。运行visudo,加入以下配置:

user1 ALL = (user2) NOPASSWD:ALL

注意:这会使得用户user1对user2的帐户有全权得控制和修改能力。你可以加入适当的限制使得user1只能以user2的身份运行部分命令,具体方法可参考sudoers的帮助。


2. 创建一个shell脚本:

xhost +SI:localuser:user2
sudo -u user2 -H gnome-terminal
xhost -SI:localuser:user2


3. 运行该脚本将弹出gnome-terminal的窗口。在gnome-terminal运行命令id将显示程序的拥有者为user2。