CHMOD防止删除文件目录

我有一些Linux服务器托pipe,我有几个文件夹,我不想删除。 这些内有子文件夹,我想删除。

如何在我不想删除的文件夹上设置CHMOD权限

当然,当我说“我不想删除”时,我的意思是说,最终用户不应该不小心删除它们,通过FTP或者PHP脚本等。

作为目录结构的一个例子…

MainFolder/SubFolder MainFolder/Another 

我不希望“MainFolder”被意外删除,但我很高兴“SubFolder”和“Another”被删除!

删除文件/目录将更改父目录的内容,因此,如果您不想要删除MainFolder ,则需要确保目标用户不具有对MainFolder的父目录的写入权限。

假设这个结构: /some/dir/ParentDir/MainFolder/SubFolder

你会想要这样运行,以防止删除(对于所有用户):

chmod aw /some/dir/ParentDir

当然,这不是一个理想的情况,因为使它不可写入的手段比用户不能添加额外的文件/目录到/some/dir/ParentDir

粘性会更适合你的目的吗? 设置父目录的粘性位只允许目录所有者删除。

chmod +t /some/dir/ParentDir

请查看http://en.wikipedia.org/wiki/Sticky_bit上的用法部分以获取有关粘滞位的更多信息。

您可以使用chown更改MainFolder的所有者

正如奥利所说,你可以chown -R new_owner Mainfolder以确保所有的子目录有一个不同的所有者,将访问它。 这应该阻止其他用户删除它。

为了允许其他用户访问它,您也可以创build一个组,并使用chgrp更改文件组。 这样,“客户”组的任何成员都可以访问这些文件夹。 另一种方法是设置另一个位来读取,如果你想让每个人都有权限访问。

请注意, chmod -R / chown -R / chgrp -R / chcon -Rrecursion设置权限。