文章目录
文件属性
Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。
Linux 系统对不同的用户访问同一文件的权限做了不同的规定
查看文件的属性以及所属的用户和组
在 Linux 中我们可以使用 ls -l (或 ll)命令来显示一个文件的属性以及文件所属的用户和组
[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……
dr-xr-xr-x : 第一部分的10个字符表示每个文件的属性
-
0位 [d]:代表这个文件的类型,是目录、文件,还是一个链接等等
- [ d ] 目录
- [ - ] 文件
- [ l ] 链接文档(link file)
- [ b ] 可供储存的接口设备(可随机存取装置)
- [ c ] 串行端口设备,例如键盘、鼠标(一次性读取装置)
-
接下来的9位字符中,以三个为一组,且均为 rwx 的三个参数的组合
- 1-3位 [r-x]:确定该文件的所有者对文件的权限 owner(属主)
- 4-6位 [r-x]:确定所有者的同组用户拥有该文件的权限 group(属组)
- 7-9位 [r-x]:确定其他用户拥有该文件的权限 others(其他)
- [ r ] 代表可读(read)
- [ w ] 代表可写(write)
- [ x ] 代表可执行(execute)
- [ - ] 没有权限
4 : 第二部分的字符表示每个文件的硬链接数
root root : 第三部分的字符表示每个文件的属主(所有者)和属组
4096 : 第四部分的字符表示每个文件的大小
** Apr 19 2012: 第五部分的字符表示每个文件的时间**
** bin / boot: 第六部分的字符表示每个文件的文件名**
更改文件属性
1、chgrp:更改文件属组
语法:
- chgrp [-R] 属组名 文件名
// -R 代表递归,即目录下所有文件都会更改属性
2、chown:更改文件属主,也可以同时更改文件属组
语法:
- chown [–R] 属主名 文件名
- chown [-R] 属主名:属组名 文件名
进入 /root 目录(~)将install.log的拥有者改为bin这个账号:
[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
将install.log的拥有者与群组改回为root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
3、chmod:更改文件9个属性
3.1 数字类型改变文件权限
我们可以使用数字来代表各个权限,各权限的分数对照表如下:
- r : 4
- w : 2
- x : 1
- -:0
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: -rwxrwx— 分数则是:
- owner = rwx = 4+2+1 = 7
- group = rwx = 4+2+1 = 7
- others= — = 0+0+0 = 0
语法
chmod [-R] xyz 文件名
// -R 代表递归,即目录下所有文件都会更改属性
// x 代表属主权限
// y 代表属组权限
// z 代表其他权限
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
3.2 符号类型改变文件权限
我们使用 u, g, o 来代表三种身份(owner/group/others)的权限。此外, a 则代表 all,即全部的身份。
语法
chmod [-R] u+rwx,g=rwx,o-rwx 文件名
// -R 代表递归,即目录下所有文件都会更改属性
// u 代表属主
// g 代表属组
// o 代表其他
# touch test1 // 创建 test1 文件
# ls -al test1 // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
去除所有人的可执行权限,则:
# chmod a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1