以另一个用户身份运行图形界面程序是否安全?

我需要以另一个用户的身份运行一个程序(libreoffice)。我注意到,当使用kdesudo -u otheruser libreoffice来调用该程序时,它会在后台启动,可能是为了避免社交工程攻击。
(在下面的文本中,“已登录用户”指的是我,而不是“otheruser”)
以下是我的问题: 1. 以这种方式运行一个不受信任的程序是否安全? 2. 它会影响当前已登录用户吗?(在已登录用户的上下文中,文件和进程访问)
排除了由于fork-bombs、过度使用CPU等引起的拒绝服务攻击,因为如果我直接登录到otheruser,这些问题也可能发生。为了明确起见,我想了解在以otheruser身份直接运行程序和使用kdesudo、gksudo和sudo运行程序之间的区别。
1个回答

出于安全考虑,假设可以访问您的X显示器的程序可以为所欲为,包括窥探您的剪贴板、向其他应用程序发送伪造的按键和其他不友好的行为。X并没有考虑到隔离的设计。
对于好奇或多疑的人,请阅读Secure Linux DesktopPassive and active attacks via X11. Is Wayland any better?。对于极度多疑的人,请查看基于虚拟化Linux实例的Qubes,每个实例都运行自己的X服务器。
如果您对运行不受信任的X应用程序感到担忧,您必须在单独的X显示器上运行它们,除了将它们作为不同的用户运行(或更好地,在不同的(虚拟)机器中运行)。您可以通过各种方式在嵌套的X窗口中运行一个单独的X服务器并显示它:通过虚拟机(VirtualBoxVMware,...),使用远程X服务器(例如VNC),您只需在本地连接,或者使用特殊用途的X-in-X程序,如XnestXephyr
如果您担心社交工程攻击,那是一个不同的问题。社交工程攻击针对用户;避免这些攻击的唯一方法就是让用户远离。

那些security.SE的问题很有趣。虚拟机或其他机器会破坏使用相同系统的目的:使用已安装的应用程序和设置。社交工程不是我的关注点,因为我对安全非常警觉。根据你的回答,我推断出使用kdesudogksu运行的任何应用程序都是不安全的,因为X是共享的,但这是否意味着使用kdesudo以其他用户身份运行是相当无用的? - Lekensteyn
1@Lekensteyn:以其他用户身份运行可以防止不使用X作为向量的攻击。根据你的偏执程度,这要么毫无用处,要么比没有好。 - Gilles 'SO- stop being evil'
我的输入密码会不会在kdesudo对话框中被捕获?或者我的Firefox会不会被捕获?只是为了澄清一下,因为你的回答暗示了这一点。 - Lekensteyn
@Lekensteyn:是的,如果您允许一个恶意应用程序在同一个X服务器上运行,这是可能的。Joanna Rutkowska的博客文章解释了一种方式。 - Gilles 'SO- stop being evil'