我想阻止同一 Linux 系统上的 2 个非 root 用户相互共享文件(通过使用 /tmp)。这可以实现吗?
如果我限制/tmp
为0770
(root:root
作为所有者:组)并在启动过程早期TMPDIR
通过(例如,通过脚本)定义用户特定,则 GConf2 开始出现问题。然后我得到的典型错误是:export TMPDIR=~/tmp; mkdir -p $TMPDIR
rc[35].d
/usr/libexec/gconf-sanity-check-2 exited with status 256
在运行级别 3(非 GUI)下一切似乎都运行良好...但我过早地得出这个结论可能是错误的,问题也可能会在运行级别 3 的稍后阶段出现。
我迄今为止的经验TMPDIR
似乎表明它要么已损坏,要么没有足够的文档,要么未被所有 Gnome 应用程序所接受。
答案1
这将是极其糟糕的想法。它违反了一套广泛传播(普遍存在)且长期存在(如“自古以来”)的假设,这些假设很可能根植于许多应用程序和实用程序中。
你最好创建 chroot 监狱或虚拟子系统,从而限制这些用户,而不是简单地将他们拒之门外。/tmp。
TMPDIR只是一种惯例,而不是标准。UNIX/Linux 程序的作者和维护者可以自由决定是否遵守。
答案2
正如其他人指出的那样,这是一个坏主意。您可以使用 ACL 来获得类似的结果:
groupadd tmpdir-denied
setfacl -m g:tmpdir-denied:- /tmp # the specific group has no access to /tmp
getfacl /tmp # see permissions
别误会我的意思。ACL会破坏事物如果不是现在,那么将来也会这样,但希望影响会比较有限。我至少会测试一下在这些更改之后我是否仍然可以 (1) 备份 (2) 恢复 (3) 修补系统。
答案3
我认为更改权限不是一个好主意/tmp
。许多应用程序会创建临时文件,/tmp
并且它们不一定在 root 权限下运行。因此,如果你这样做,你会破坏它们。