Unix:有没有办法使文件可写,但不可删除,不可移动,不可复制?

Unix:有没有办法使文件可写,但不可删除,不可移动,不可复制?

我们有一些“活文件”,可供多人访问。 unix中有没有一种方法可以使文件只能读取和写入,但不能移动、复制或删除?

这样做的目的是确保网络上只有一份文件副本。

答案1

假设该文件和该文件所在的目录(其父目录)由完全独立的用户拥有,并且属于一个联合组......

使文件的父目录对于该组不可写将使该文件不可被该组的成员删除。通过使文件不可被组成员删除,您可以确保这些组成员无法将文件从其父目录中移走。

您无法使该文件可读不可复制,因为读取文件本质上允许用户复制它。

“其他人”对该文件或父目录没有权限。


理想情况下,您将使用某种形式的系统(可能由 )支持git,允许人们以受控方式协作处理文件。这将允许更容易的访问控制、远程访问以及修订控制。

答案2

在 Solaris(ZFS 上)上,您可以调用:

chmod S+cu file

在 FreeBSD 上,您可以调用:

chflags sunlink file

在 Linux 上,可以调用

chattr +u file

在所有情况下,您都需要成为超级用户才能设置标志。

Linux 在 ext* 文件系统上不支持此功能。

相关内容