有smb和afp的CentOS箱子。
有一个共享,每个人都有读/写访问权限,我想要阻止该共享内的一对文件夹被删除,但仍允许完整的读/写。
从我阅读chmod manpages,我不知道该怎么做。
有什么build议么?
使用父目录上的sticky位( o+t ),并将要设置为不可移动的目录或文件的所有者更改为不同的用户。
如果你不想让他们从目录中删除任何文件,包括他们所做的文件,然后继续从上面添加SUID位到目录( u+s )。 这将导致所有文件被创build,所有者是目录的所有者(这可能导致用户无法再打开的文件,基于他们的umask)。 suid位会自动层叠到新的目录中,但粘性位不会自动保护,因此它的保护仅限于直接在一个目录中的文件,所以这将无法阻止用户在子目录中创build文件然后删除它们。
使用networking文件系统会使这一切复杂化,因为您只需将其更改为与samba用于连接的用户不同的用户(您是将每个远程用户映射到一个“samba”用户还是使用本地用户名对于每个人?),但是您仍然需要具有允许samba访问目录内容的权限。
另外,请注意,即使文件本身设置了+ w,也可能使编辑文件不可用,因为许多编辑者通过编写临时文件实际上保存,然后在将临时文件重命名为临时文件之前尝试将原始文件重命名为备份文件它的最终位置,但他们将无法重命名文件,他们不属于一个粘滞的目录。
恐怕你运气不好。 为了做到这一点,networking文件系统服务器(smb,afp)需要支持xacls,并且其中一个xacls的意思是“防止删除这个目录”。 Samba和NetATalk没有我所知的最好的。
我知道只有一个这样的系统可以,那就是Novell的Open Enterprise Server中的NCP服务器,它支持目录上的“标志”。 我不知道其他任何事情。