以root用户身份在Linux中启动普通用户的X app实例


2

所以,这就是我真正喜欢做的事情。我的Arch Linux笔记本电脑在pm-utils的帮助下进入睡眠状态,需要手动关闭一些X应用程序(传输,女妖等)(通过/etc/pm/sleep.d/00script.sh中的脚本)和睡眠恢复后重新启动。但是,由于pm钩子以root用户身份运行,因此为普通用户AS root运行X应用程序是一个相当大的挑战。这一切都归结为DISPLAY和XAuthority导出,我知道,但我已经没有想法如何使它工作,我已经尝试了许多方法,但没有一个曾经工作过。

所以,我决定抛出这个,看看这里的任何超级用户是否知道可以做些什么:)


您不应该关闭任何程序 - 它们会与系统的其余部分一起被暂停。传输不需要任何特殊处理,它会在唤醒时逐渐恢复传输。
grawity

如果我让一台笔记本电脑进入睡眠状态并且主动传输甚至读取数据,或者就此而言仍然是女妖,在恢复时会发生奇怪的事情。最好的例证如下。如果我在/ media / disk / tmp目录中的控制台并将笔记本电脑发送到睡眠状态,那么当恢复运行ls时,该dir将无法产生输出。即使磁盘安装在同一位置。离开带有cd的路径并返回到它“修复”了这个问题。我相信其他应用程序挂起笔记本电脑的原因相同。因此,我必须在切换到睡眠模式之前将其关闭。
ILIV

Answers:


0

在回答问题本身时,您要将文件设置为 SUID root 。正如grawity所评论的那样,在睡觉时不应该关闭这些程序。


没错,但是当我这样做时会发生奇怪的事情。请阅读上面的评论。我不认为SUID是个好主意。这样做不是风险较低的方式吗?
ILIV

0

长话短说,这就是'怎么样'

root @ host $ sudo -u joe DISPLAY =:0 transmission-gtk

当我问这个问题的时候,我显然正在运行一个带有令人讨厌的bug作为奖励的内核,因为当我从睡眠状态恢复笔记本电脑时会发生许多奇怪的事情。

现在,我运行另一个内核版本,并没有上述问题存在。我sudo现在只是工作。我已经尝试过各种各样的东西,你可以说出来。什么都没有用,我对Linux耸肩并不陌生。

它现在确实有效。感谢您的帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.