Linux 中使用 Chmod 递归修改文件的权限(Chmod 如何递归修改目录权限)

如果你使用 Linux 操作系统或者管理 Linux 服务器,那么在创建或者编辑文件的时候,一定遇到过“权限拒绝”的错误。这种情况通常是由于用户没有创建或编辑文件的权限。

Linux 中使用 Chmod 递归修改文件的权限
Linux 中使用 Chmod 递归修改文件的权限

Linux 是一个多用户系统,通过文件权限、属性和所有权来控制对文件的访问。这可以确保只有被授权的用户和进程才能访问特定文件和目录。在本文中,我们将介绍如何递归更改文件和目录的权限。

Chmod 递归修改权限

Chown 为英文“change ownership”的缩写,可以在 Linux 上更改一组文件和文件夹的所有者。此外,在某些情况下,还需要修改包含很多文件的文件夹的所有者,这时可能必须使用 chown 递归授权。chown 递归授权的意思是,将对特定目录中的所有文档,以及所有子目录中的文件和文件夹执行授权。

要对目录下的所有文件和文件夹进行递归操作,使用 chmod 命令加一个“-R” ( --recursive) 选项。递归更改文件权限的语法如下:

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 命令以进行相应的权限设置。

使用 find 加 -exec 选项,是把参数一个一个传递给 chmod 命令,即传递一个文件执行一次 chmod 命令;而 find 加xargs 选项,是把参数一次性传递给 chmod 命令,即把找到的的所有文件一次性传给 chmod 命令处理。

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

作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/linux/how-to-chown-recursively-on-linux/

(0)
牛奇网牛奇网
上一篇 2022年4月7日 上午9:44
下一篇 2022年4月9日 上午9:44

相关推荐

发表回复

登录后才能评论