一. Linux文件属性
首先我们在/home目录下,输入命令ls -l,得到以下内容:
第一列代表文件的类型和权限
1.首个字符
[d]代表目录,[-]代表文件,还有[l] [b] [c]等分别代表链接文件、接口设备、串行端口设备等
2.接下来的9个字符,3个为一组,均为[rwx]的三个参数的组合
其中,[r]代表可读read,[w]代表可写write,[x]代表可执行execute,如果没有对应权限,就显示[-]
第一组[r][w][x]代表“文件拥有者所拥有的权限”,例如图中的test.txt文件,该文件的拥有者就拥有所有权限
第二组[r][-][x]代表“加入此群组的账号拥有的权限”,简单来说,text.txt文件属于charles群组,因此,该群组的账号具有读和执行的权限,但是没有写的权限
第三组[r][-][x]代表“其它账号的权限”,即其它账号也拥有读和执行的权限,但是没有写的权限
第二列代表有多少文件连接到此节点,这里不详细解释
第三列代表此文件或目录的拥有者账号
例如图中的test.txt文件,其拥有者就是charles,charles这个用户对应的权限也就是[r][w][x]
第四列代表这个文件的所属群组
Linux系统下,账号可能加入一个或多个群组,而每个文件也会有所属群组,例如test.txt这个文件就属于charles这个群组,同样的,该群组下的账号对应的权限就为[r][-][x]
相对于charles这个账号来说,他既是这个文件的拥有者,也是群组下的成员,但是对应的权限就是拥有者的权限[r][w][x]
第五列代表文件的大小,默认单位为bytes
第六列代表文件的创建日期或者最近的修改日期
第七列为文件名,若文件名前面有“.",则代表是隐藏文件,可以输入ls -al指令查看
二. 修改文件属性与权限
chgrp: 修改文件所该群组
chown: 修改文件所有者
chmod: 修改文件权限
1. 改变所属群组
chgrp [-R] filename
-R代表递归处理,即包括此目录及目录下的所有文件都进行相同的操作
例如,我们将test.txt修改成root群组,可以看到下面test.txt群组已经被修改了
2.改变文件所有者
chown [-R] 账号名称 文件名称
chown [-R] 账号名称:组名 文件名称
chown可同时修改账号名称和组名
可以看到,我们的test.txt文件原来所有者为charles,群组为root,输入命令chown root:charles test.txt,修改后,所有者为root,群组为charles
3.修改文件权限
数字类型修改权限:
linux文件基本权限只有9个,分别是user/group/others三种身份,每个身份分别对应三种权限read/write/execute,权限对应数字简单来说:
r:4
w:2
x:1
例如,owner对应的权限为[r][w][x],则对应数字相加即为7;group对应权限为[r][-][x],对应数字相加即为5
如果我们需要把所有身份的权限都添加,即[-rwxrwxrwx],指令为chmod [-R] 777 test.txt
符号类型改变文件权限:
上面说到3中身份为user、group、others,则可以用u、g、o来代表,a代表所有身份,添加、删除分别用+、-来代表
例如group当前权限为[r-x],others当前权限为[r--],若都为其添加w权限,则指令为:
chmod go+w test.txt
以此类推