[TOC]
# 文件基本属性
Linux系统中,每个文件有10个属性,分别如下所示:
![](https://blankj.com/gitbook/linux/README/ls_l_10.png)
` `
其中,第 0 位表示文件类型:
* 当为`d`则是目录;
* 当为`-`则是文件;
* 若是`l`则表示为链接文档(link file);
* 若是`b`则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
* 若是`c`则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的,以三个为一组,且均为`rwx`的三个参数的组合。其中,`r`代表可读(read)、`w`代表可写(write)、`x`代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号`-`而已。其中,1-3 位确定 owner 对该文件的权限;4-6 位确定 group 对该文件的权限;7-9 位确定 other 对该文件的权限。
# 查看文件的属性
`ls -l`命令显示的前 10 位 如下所示。
~~~
➜ ALog git:(master) ls -l
total 112
drwxr-xr-x 11 Blankj staff 374 Dec 6 23:39 alog
-rw-r--r-- 1 Blankj staff 11336 Dec 4 17:08 LICENSE
-rw-r--r-- 1 Blankj staff 6932 Dec 6 23:44 README.md
~~~
# 更改文件属性
## 更改文件 owner
~~~
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
~~~
## 更改文件 group
~~~
chgrp [-R] 属组名 文件名
~~~
## 更改文件权限
更改文件权限有两种方法,一种是数字法,一种是符号法。
# 数字法修改文件属性
~~~
chmod [-R] xyz 文件或目录
~~~
文件的基本权限就有九个,owner/group/others 每个都有各自的`rwx`权限,我们使用数字来代表各个权限,如下所示:
~~~
r: 4
w: 2
x: 1
~~~
每种身份(owner/group/others)各自的`rwx`是需要累加的,当文件权限为`rwxrwx---`,则用数字表示为:
~~~
owner = rwx = 4 + 2 + 1 = 7
group = rwx = 4 + 2 + 1 = 7
others = --- = 0 + 0 + 0 = 0
~~~
例如要开启`alog`目录及目录下所有文件的所有权限,可以使用`chmod -R 777 alog`命令。
# 符号法修改文件属性
~~~
u +(加入) r
chmod g -(除去) w 文件或目录
o =(设定) x
a
~~~
我们就可以用`u`,`g`,`o`,`a`来代表 owner,group,others,all。
如果我们要将文件权限设置为`rwxr-xr--`,可以使用`chmod u=rwx,g=rx,o=r 文件名`命令。