接上一篇文章Linux shell编程(四): Linux 用户和组管理
2.4.3 Linux文件权限使用 ls 命令可以查看文件、目录和设备的权限(第一组),如下:
共有10位,除第1位,后9位每3位为一组,其中各部分含义如下:
文件类型- 代表文件d 代表目录l 代表链接c 代表字符型设备b 代表块设备n 代表网络设备 属主权限(user)属组权限(group)其他用户权限(other)
其中,每组3位依次为读权限/写权限/执行权限,
r 代表可读w 代表可写x 代表可执行- 代表当前位没有权限
有时也看到使用数字表示这几位权限,其实这些数字是八进制数,它与字母表示的方法是通过二进制转换过来的,对应关系如下:
依照此规律,上面例子中的 Videos 目录的权限用数字可以表示成 755。
修改权限
使用 chmod 命令可以修改文件和目录的权限,如下:
chmod options mode file
其中,options 是参数选项,mode 是权限,file 是要修改权限的文件或目录。
对于参数选项,有一个很有用的参数 -R ,可以让权限的改变递归地作用到文件和子目录。
对于mode权限,可以使用八进制模式或符号模式进行设置。
八进制模式: chmod 760 testfile
符号模式较八进制模式有些复杂,它的格式如下:
[ugoa][+-=][rwxXstugo]
其中第一组各字符含义如下:
u:用户(user)g:用户组(group)o:其他(other)a:上述所有(all)
第二组各字符含义如下:
+:在现有权限基础上增加权限-:在现有权限基础上移除权限=:将权限设置成后面的值
第三组除rwx外,其余各字符含义如下:
X:如果对象是目录或者它已有执行权限,赋予执行权限。s:运行时重新设置UID或GID。t:保留文件或目录。u:将权限设置为跟属主一样。g:将权限设置为跟属组一样。o:将权限设置为跟其他用户一样。
使用示例:
修改所属关系
chown 命令用来改变文件的属主,也可以同时修改属组,
chgrp 命令用来改变文件的默认属组。
chown 修改属主
chown testuser testfile
chown 修改属组
chown .testgroup testfile
chown 同时修改属主和属组
chown testuser.testgroup testfile
如果属组是通过匹配属主创建的(此时属组和属主同名),同时修改属主和属组可以简写为:
chown testuser、testfile
同样,chown 也有参数选项,-R 选项配合通配符可以递归地改变子目录和文件的所属关系。 -h 选项可以改变该文件的所有符号链接文件的所属关系。
注意,只有root用户能够改变文件的属主。任何属主都可以改变文件的属组,但前提是属主必须是原属组和目标属组的成员。