Linux批量修改文件权限,目录和文件设置不同权限

Linux的文件权限分三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users):

-或d rwx rwx rwx
  • 第一列:- 表示文件,d 表示目录;

  • 第二列:所有者权限,r(读)、w(写)、x(执行);

  • 第三列:用户组权限;

  • 第四列:其他用户权限;

用八进制表示:

  • 4:读;

  • 2:写;

  • 1:执行;

如果目录所有者需要拥有读、写和执行权限,则第一位等于4+2+1,即7;如果用户组和其他用户只给读和执行的权限,则第二位和第三位为4+1,即5。因此得到八进制表示的目录权限:755

如果文件所有者需要拥有读和写的权限,则第一位等于4+2,即6;如果用户组和其他用户只给读的权限,则第二位和第三位为4。因此得到八进制表示的文件权限:644

在网站建设中,通常将目录权限设置为755,文件权限设置为644。

chmod命令

常用方式:

chmod 644 file.txt

比较灵活的方式:

chmod [ugoa][+-][rwx]
  • u:所有者;
  • g:用户组;
  • o:其他用户;
  • a:以上三者;
  • +:增加权限;
  • -:删除权限;

示例(file1和file2所有者和用户组增加写权限,其他用户删除写权限):

chmod ug+w,o-w file1.txt file2.txt

其他参数:

  • -c:文件权限确实已经更改,才显示其更改动作;
  • -f :不显示错误信息;
  • -v :显示权限变更的详细信息;
  • -R:遍历当前目录下所有子目录和文件并修改权限;

如果只使用chmod命令,即使加了-R参数,也只能批量统一设置目录和文件的权限。实际应用中,通常需要单独设置目录和文件的权限。

批量修改目录或文件权限

批量修改目录权限命令如下:

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

其实就是结合了find命令查找当前目录下所有目录,并设置权限。由于限定了目录类型,所以不影响普通文件。

批量修改文件权限命令如下:

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