我在根目录中创建了目录。我正在寻找chmod
允许所有用户对特定目录进行读写的命令。我已经chmod 775
为文件完成了此操作,但我需要为目录执行此操作。这包括对所有文件和子目录的权限。
答案1
0775
对于文件来说很少是正确的。下面将向适当的类型添加适当的所需权限,而不会干扰其他现有权限:
find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)
查看find 的手册页以帮助解释这一点。
答案2
为了全部用户拥有读写权限,这有点0777
危险,特别是如果你正在运行网络服务器。就像@unwind 说的:
chmod -R 0777 /mydirectory
将允许所有用户对该目录内的所有文件和文件夹进行读写访问
根据您的目的,您可能需要了解粘滞位,它允许所有用户创建新文件,但不允许删除或编辑目录中的其他文件:
chmod +t /mydirectory
另外,如果您不知道,man chmod
将会显示该chmod
命令的手册页,您可以通过输入搜索文本“recursive”/recursive
答案3
Unix 保护模型不是这样工作的,您不能递归设置权限。您需要在每个目录上设置权限,一直“向下”。
当然你可以这样做环境递归地,但这仅意味着“遍历并在下面的所有文件和文件夹上设置这些权限”,这不是我理解你的问题的方式。
为此,请使用-R 选项到 chmod:
$ chmod -R 0755 /my-cool-directory