云网牛站
所在位置:首页 > Linux命令 > 在Linux中递归更改文件的权限:以递归方式更改文件和目录的权限

在Linux中递归更改文件的权限:以递归方式更改文件和目录的权限

2019-12-21 10:19:35作者:戴进稿源:云网牛站

在本文中,我们将说明如何使用chmod、find命令以递归方式更改文件和目录的权限。如果您使用Linux作为主要操作系统或管理Linux服务器,则在尝试创建或编辑文件并收到“Permission deny”错误时会遇到这种情况,通常,可以通过设置正确的文件权限或所有权来解决与权限不足有关的错误。Linux是一个多用户系统,通过文件许可权,属性和所有权来控制对文件的访问,这样可以确保只有授权的用户和进程才能访问文件和目录。

在Linux中递归更改文件的权限:以递归方式更改文件和目录的权限

 

Chmod递归

chmod命令允许您使用符号或数字模式更改文件的权限,参考Linux中的文件权限Chmod命令:教你使用chmod更改文件和目录的访问权限

要对给定目录下的所有文件和目录进行递归操作,请使用带有-R, (--recursive)选项的chmod命令,递归更改文件权限的常规语法如下:

chmod -R MODE DIRECTORY

例如,要将/var/www/html目录下的所有文件和子目录的权限更改为755,可以使用:

$ chmod -R 755 /var/www/html

也可以使用符号方法指定模式:

$ chmod -R u=rwx,go=rx /var/www/html

只有root用户,文件所有者或具有sudo特权的用户才能更改文件的权限,递归更改文件的权限时,请格外小心。

 

使用find命令

通常,文件和目录不应具有相同的权限,大多数文件不需要执行权限,而您必须在目录上设置执行权限才能更改为它们。

最常见的情况是将网站文件的权限递归更改为644,目录的权限更改为755。

使用数值方法:

$ find /var/www/html -type d -exec chmod 755 {} \;

$ find /var/www/html -type f -exec chmod 644 {} \;

使用符号方法:

$ find /var/www/html -type d -exec chmod u=rwx,go=rx {} \;

$ find /var/www/html -type f -exec chmod u=rw,go=r {} \;

find命令在/var/www/html下搜索文件或目录,并将找到的每个文件或目录传递给chmod命令以设置权限,参考使用Linux查找命令find的语法和示例,使用find能查找文件

将find与-exec一起使用时,将为找到的每个条目运行chmod命令,使用xargs命令通过一次传递多个条目来加速操作:

$ find /var/www/html -type d -print0 | xargs -0 chmod 755

$ find /var/www/html -type f -print0 | xargs -0 chmod 644

 

结论

带有-R选项的chmod命令允许您递归更改文件的权限。要基于文件的类型递归设置权限,请结合使用chmod和find命令。

 

相关主题

在Linux中使用Chgrp命令的方法:更改文件/符号链接/递归更改组所有权

Linux命令子频道
精选文章
热门文章