我们有一些“活文件”,可供多人访问。 unix中有没有一种方法可以使文件只能读取和写入,但不能移动、复制或删除?
这样做的目的是确保网络上只有一份文件副本。
答案1
假设该文件和该文件所在的目录(其父目录)由完全独立的用户拥有,并且属于一个联合组......
使文件的父目录对于该组不可写将使该文件不可被该组的成员删除。通过使文件不可被组成员删除,您可以确保这些组成员无法将文件从其父目录中移走。
您无法使该文件可读和不可复制,因为读取文件本质上允许用户复制它。
“其他人”对该文件或父目录没有权限。
理想情况下,您将使用某种形式的系统(可能由 )支持git
,允许人们以受控方式协作处理文件。这将允许更容易的访问控制、远程访问以及修订控制。
答案2
在 Solaris(ZFS 上)上,您可以调用:
chmod S+cu file
在 FreeBSD 上,您可以调用:
chflags sunlink file
在 Linux 上,可以调用
chattr +u file
在所有情况下,您都需要成为超级用户才能设置标志。
Linux 在 ext* 文件系统上不支持此功能。