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