Linux-如何递归地修改文件夹的权限?

Linux-如何递归地修改文件夹的权限?

我怎样才能以递归方式 chmod 文件夹内的所有内容?

例如,我有一个名为的文件夹var,其中包含许多子文件夹和文件。

如何将 chmod 755 递归应用于此文件夹及其所有内容?

答案1

请参阅手册(man chmod):

-R, --recursive
change files and directories recursively

chmod -R 755 /path/to/directory将会执行您想要的操作。

然而…

  1. 你通常不想全部 755文件;这些应该是 644,因为它们通常不需要可执行。因此,您可以find /path/to/directory -type d -exec chmod 755 {} \;只更改目录权限。使用-type fchmod 644将权限应用于文件。

  2. 这将覆盖所有现有权限。这样做不是一个好主意/var— 文件夹已经由系统设置了正确的权限。例如,中的某些目录/var需要 775 权限(例如/var/log)。

因此,在执行操作之前sudo chmod(尤其是在系统文件夹上),请停下来想想是否真的有必要。

答案2

对于基于 PHP 的网站,许多来源如这个建议目录使用 755,文件使用 644。

如果您在网站的 DocumentRoot 中,您可以按如下方式进行设置:

find . -type d -exec chmod 755 {} \;

find . -type f -exec chmod 644 {} \;

答案3

如果您希望应用于特定目录/文件,您可以按如下方式chmod使用:find

find . -type f -name "*.sh" -print0 |xargs -0 chmod 755

答案4

您可以授予本地主机所有权限

sudo chmod -R goa=rwx /path/to/directory

相关内容