1. 使用者与群组
Linux系统分使用者、群组、其他人的三种身份,权限就是根据这三种身份进行分配的。
2. 文件权限概念
2.1 Linux文件属性
使用 ls -al 或 ll 命令查看当前目录的文件属性
$ ls -al ... -rwxrw-r--. 1 john man 334 May 2 04:02 file
上面分为7部分,分别为 -rwxrw-r-- 、 1 、john 、man 、334 、 May 2 04:02 、 file。
第一部分(文件类型权限)
第一部分第一个字符代表文件的类型
d | 目录 |
- | 文件 |
l | 连接档(快捷方式) |
b | 装置文件里面可供存储的接口设备(可随机存储配置) |
c | 装置文件里面的串行端口设备,例如:键盘、鼠标(一次性读取装置) |
接下来的九个字符,以三个为一组,均为 rwx 的三个参数组合。其中 r 代表可读(read),w 代表可写(write),x 代表可执行(execute)。
如果没有权限,就会显示减号 -
第一组为文件拥有者可具备的权限,第二组为加入此群组的账号具备权限,第三组为其他人权限(费拥有者和群组)。
第二部分 连结档数量
第三部分 此文件的拥有者账号
第四部分 此文件的所属群组
第五部分 表示此文件的容量大小,单位: byte
第六部分 最近修改日期
第七部分 文件名
5.2 改变文件属性和权限
修改文件的属性和权限需要使用root用户。root用户命令行用 # 表示,其他用户是 $ 表示。
改变所属群组, chgrp
chgrp,就是change group的缩写。用法如下:
// # chgrp group dirname/filename
# chgrp root file
改变 目录/文件 file 的所属群组为 root
改变文件拥有者, chown
chown,就是change owner的缩写。用法如下:
//# chown user dirname/filename
//# chown user:gourp dirname/filename
# chown root file //改变file文件的文件拥有者为root
# chown root:man file //改变file文件的文件拥有着为root,所属群组为man
改变文件权限,chmod
1.数字类型改变文件权限
刚才2.1第一部分提到文件权限,如:【-rwxrwxrwx】,这九个权限是三个三个一组的。其中我们可以使用数字代表各个权限,权限分数对照表如下:
r : 4
w : 2
x : 1
每种身份(文件拥有者/群组/其他人)的各自权限(r/w/x)分数需要累加的。如:【-rxwr-x---】分数则是:
rwx: 4 + 2 + 1 = 7
rx-: 4 + 1 = 5
---: 0
所以该文件的权限就是750啦。修改的权限语法为:
// # chmod xyz dirname/filename # chmod 750 file
2.符号类型改变文件权限
我们知道权限分为(1)user,(2)group, (3)other三种身份,对应的符号为 u, g, o,而 a 代表all(全部)的意思。
# chmod u=rwx,g=rw file //修改文件名为file的文件拥有者的权限为rwx,所属群组权限为rw
# chmod a=rwx file //修改文件名为file的文件,文件拥有者、群组、其他人的权限为rwx
目录与文件之权限的意义
文件
r(read):可读取此文件的内容。
w(wirte):可编辑、新增或修改该文件内容
x(execute):该文件具有可以被系统执行的权限。
目录
r(read):可读取到该目录下的文件名(如果只有r权限,没有x权限,则只能看到该目录下的文件名,看不到文件权限、大小等信息)。
w(wirte):
1.建立新的文件或目录
2.删除文件和目录
3.对文件或目录重命名
4.搬移该目录内的文件或目录位置
x(execute):可进入该目录。