更改文件夹权限

更改文件夹权限

我应该对文件夹应用什么权限,以便每个人都可以看到层次结构和其中的所有文件,但他们不能读取和写入它们。该文件夹可以包含多个包含文件的其他文件夹。

答案1

列出目录使用可执行位,我认为读取实际上根本不会影响目录。您必须设置每个文件的权限,以防止读取或写入它们。以下命令将为您完成所有这些操作,从您希望从中开始的文件夹执行它们:

find . -type d | xargs chmod o=rx 
find . -type f | xargs chmod o=

find将以递归方式查找文件 ( -type f) 和目录 ( -type d) 并打印它们的名称(缺少其他指定的操作),然后通过管道传输到xargs,后者使用从管道读取的文件执行其参数。 chmod将其他人的权限( ,意味着您或拥有该文件的组中的其他人都没有)更改为文件夹的权限o完全为 ( =) 读取/列出 ( rx),而对普通文件没有任何权限。


正如 grumbel 在评论中指出的那样,这只适用于表现良好的名称。要获得所有这些名称,请使用他的解决方案:

find . -type d -print0 | xargs -0 chmod o=rx 
find . -type f -print0 | xargs -0 chmod o=

或者 find 的内置函数-exec

find . -type d -exec chmod o=rx '{}' ';'
find . -type f -exec chmod o= \{\} \;

请注意,您可以像第一行一样引用括号和分号,也可以像第二行一样将它们转义,但它们必须放在单独的参数中。此外,-exec将为每个文件执行一次 chmod,而 xargs 将使用尽可能少的命令执行此操作(基于最大命令行长度)。这就是我通常更喜欢 xargs 的原因。

答案2

sudo chown -R username:root "/directory you want"

-R表示其所有子目录和文件的递归。

用户名-当前用户

它有助于读/写/执行权限

相关内容