如何让Windows机器无法在Linux Samba服务器上删除目录(而不是内容)?

标题说明了一切。 (实际上很less见的一种情况:P)

在Linux端的一个老把戏可能在这里工作:

mkdir StayingAlive sudo touch StayingAlive/.CantTouchThis sudo chattr +i StayingAlive/.CantTouchThis 

这里的关键是.CantTouchThis上的不变属性(你可能会想要一个更严肃的名字,比如.rootfile )。 这个属性可以防止文件被删除(甚至修改) – 即使root不能删除这个属性。 这个文件将防止目录被清空,从而防止它被删除。

当我在过去做过这些事情时,我通常也改变了文件夹的所有权,并且通过setgid位(g + s)给予用户访问 – 虽然这背后的理由逃避了我

 sudo chown root.user StayingAlive sudo chmod g+sw StayingAlive 

为了删除一个目录,它必须是空的,并且你必须对它的父权具有写权限。

因此,您可以防止目录变得像STWbuild议的那样变空,或者您可以确保用户对目录的父目录没有写入权限,而不允许删除目录。

如果您有一个名为/foo/bar的目录和一个名为/foo/bar/file ,则在/foo/bar上具有写入权限的用户可以删除该文件。 但是在/foo/bar上写权限并不意味着删除/foo/bar权限,删除将需要在/foo上写权限。