我想阻止在同一个Linux系统上的两个非root用户共享文件(通过使用/ tmp)。 这是可能的吗?
如果我将/tmp
限制为0770
( root:root
作为所有者:组)并通过export TMPDIR=~/tmp; mkdir -p $TMPDIR
定义一个用户特定的TMPDIR
export TMPDIR=~/tmp; mkdir -p $TMPDIR
export TMPDIR=~/tmp; mkdir -p $TMPDIR
在启动过程中(比如,通过一个rc[35].d
脚本),GConf2开始出现问题。 然后我得到一个典型的错误是:
/usr/libexec/gconf-sanity-check-2 exited with status 256
在运行级别3(非GUI)中,一切似乎都能正常工作…虽然我可能会错误地提前结束这个问题,但运行级别3也可能会出现问题。
我迄今为止使用TMPDIR
经验似乎表明它已经被破坏了,或者没有被充分logging,或者没有被所有的Gnome应用所接受。
这将是一个非常糟糕的主意。 它违反了一个非常普遍的(普遍的)和长期的(如“从远古时代起”)一套可能在许多应用和实用程序中根深蒂固的假设。
创buildchroot jail或虚拟子系统并限制这些用户,而不是试图简单地将它们locking在/ tmp之外是更好的办法。
TMPDIR只是一个惯例,而不是一个标准。 UNIX / Linux程序可以自由地兑现或不遵守其作者和维护者的意愿。
别人指出的不好的主意。 您可以使用ACL获得相似的结果:
groupadd tmpdir-denied setfacl -mg:tmpdir-denied:- /tmp # the specific group has no access to /tmp getfacl /tmp # see permissions
不要误解我的意思 ACL 也将打破事情 ,如果不是现在,那么将来也是如此,但影响将有望受到一定的限制。 如果我仍然可以(1)备份(2)恢复(3)这些更改后的补丁系统,我会testing为最低限度。
我不认为这是改变/tmp
权限的好主意。 许多应用程序在/tmp
下创build临时文件,而且它们不一定以root权限运行。 所以,如果你这样做,你会打破他们。