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 {} \;