我在 Linux 服务器上托管了一些内容,并且有几个文件夹我不想删除。这些文件夹中有一些子文件夹我确实想删除。
如何对我不想删除的文件夹设置 CHMOD 权限?
当然,当我说“我永远不想删除”时 - 我的意思是最终客户不应该通过 FTP 或 PHP 脚本等意外删除它们。
作为目录结构的示例...
MainFolder/SubFolder
MainFolder/Another
我不希望“MainFolder”被意外删除,但我很高兴“SubFolder”和“Another”被删除!
答案1
删除文件/目录会改变父目录的内容,因此,如果您不想MainFolder
被删除,您需要确保目标用户对父目录没有写权限MainFolder
。
假设这种结构:
/some/dir/ParentDir/MainFolder/SubFolder
您需要运行如下命令来防止删除(针对所有用户):
chmod a-w /some/dir/ParentDir
当然,这不是理想的情况,因为使其不可写意味着用户无法向其添加其他文件/目录/some/dir/ParentDir
粘性位是否更适合您的目的?在父目录上设置粘性位将只允许目录所有者删除。
chmod +t /some/dir/ParentDir
请参阅使用部分http://en.wikipedia.org/wiki/Sticky_bit有关粘性位的更多信息。
答案2
你可以MainFolder
用chown
答案3
正如 Oli 所说,您可以chown -R new_owner Mainfolder
确保所有子目录的所有者与访问它的所有者不同。这应该可以阻止其他用户删除它。
要允许其他用户访问它,您还可以创建一个组并使用 更改文件组chgrp
。这样,您的“客户”组中的任何成员都可以访问这些文件夹。如果您希望每个人都有访问权限,另一种方法是将另一位设置为读取。
注意chmod -R
///chown -R
以递归chgrp -R
方式chcon -R
设置权限。