我需要以其他用户身份运行程序 ( libreoffice
)。我注意到,当以 身份调用时,该程序在后台启动kdesudo -u otheruser libreoffice
,可能是为了避免社会工程攻击。
(下文中的“登录用户”指的是我,而不是“其他用户”)
- 以这种方式运行不受信任的程序是否安全?
- 这会影响当前登录的用户吗?(登录用户上下文中的文件和进程访问)
排除了通过 fork-bombs 发起的拒绝服务攻击、占用过多 CPU 等,因为如果我直接登录 ,这些攻击也可能发生otheruser
。为了清楚起见,我正在寻找在 中运行的程序之间的差异直接地当以 身份登录并使用、和otheruser
运行程序时。kdesudo
gksudo
sudo
答案1
出于安全考虑,假设有权访问 X 显示器的程序可以做任何想做的事情,包括窥探剪贴板、向其他应用程序发送虚假击键以及其他不雅行为。X 的设计并没有考虑到隔离。
如果你好奇或偏执,请阅读安全 Linux 桌面和通过 X11 进行被动和主动攻击。Wayland 会更好吗?。对于极度偏执的人,请查看屈贝斯,它基于虚拟化的 Linux 实例,每个实例都运行自己的 X 服务器。
如果您担心运行不受信任的 X 应用程序,则必须在单独的 X 显示器上运行它们,此外还要以不同的用户身份运行它们(最好在不同的(虚拟)机器中运行它们)。您可以运行单独的 X 服务器,并通过多种方式将其显示在嵌套的 X 窗口中:通过虚拟机 (虚拟盒,VMware,…),使用远程 X 服务器,例如虚拟网络计算机你恰好在本地连接到它,或者使用专用的 X-in-X 程序,例如巢或者西风。
如果你担心社会工程攻击,那就是另一个问题了。社会工程攻击的目标是用户;避免它们的唯一方法就是将用户排除在外。