目录
2.文件的访问控制列表(FACL File access control list)
[root@localhost ~]# ll
一、文件类型
- 常规文件
d 目录
b 块设备
c 字符设备
s 套接字文件
p 管道文件
l 链接文件
二、通用权限
1.文件的常规权限
(1).文件所有者对该文件所拥有的权限
(2).文件所属组成员对该文件所拥有的权限
(3).除了文件所有者和文件所属组成员的其他用户对该文件的权限
权限类型
权限的类型一共有3个(r、w、x)
壹.对于文件:
r 可以查看文件内容
w 可以修改文件内容
x 可以执行该文件(该文件的内容必须可执行)
- 没有对应的权限
贰.对于目录:
r 表示可以查看该目录
w 可以在目录中创建删除文件
x 可以切换到该目录
- 没有对应的权限
查看和修改权限
说明:
查看权限:stat FILENAME
修改权限:chmod (表达式) 指定的文件名称(filename)
表达式:
用户(u user ; g group ; o other ;a all)
定义方式(定义权限)
+ 表示授予相对应的权限
- 取消对应的权限
= 表示指定权限
举例:
字母表示法
[root@localhost jian]# ll
(文件a权限如图所示)
给所有者加x权限:[root@localhost jian]# chmod u+x a
[root@localhost jian]# ll
给所属组加w和x权限:[root@localhost jian]# chmod g+wx a
[root@localhost jian]# ll
在其他用户的权限上,把r权限去掉
[root@localhost jian]# chmod o-r a
[root@localhost jian]# ll
权限书写同样也能使用“=”
[root@localhost jian]# chmod u=rw,g=wx,o=x a
[root@localhost jian]# ll
若想给所有用户相同的权限,可执行操作如下
[root@localhost jian]# chmod a=- a
[root@localhost jian]# ll
数字表示法
假设有权限用1表示,没有权限就用0表示
例如:rwxrwxrwx 777
[root@localhost jian]# ll
[root@localhost jian]# chmod 777 a
[root@localhost jian]# ll
数字表示法也有一定的局限性,如果只是给某一个用户或者某一类用户加上或者减去权限,数字表示法就不是很方便,可能还需要花时间换算。
注意:在不同的场合学会灵活使用这两种表达方式
2.文件的访问控制列表(FACL File access control list)
. 标记文件的访问控制列表(没有配置文件的访问控制列表)
+ 已经配置或者曾经配置文件的访问控制列表
setfacl 设置
-m 添加或者修改
-x 删除
u user 指定用户
g group 指定组
-b 移除所有的扩展的ACL条目
getfacl 查看
举例说明
有一个文件的权限[root@localhost test]# chmod 777 a
[root@localhost test]# ll
(都可以读写和执行)
需求:禁止pao用户(已经创建好的用户)去执行和写入
允许所有人访问,拒绝pao用户访问
[root@localhost test]# setfacl -m u:pao:- a
[root@localhost test]# getfacl a
目前pao用户无任何权限,此时切换到pao用户去访问/test/a
[root@localhost test]# su - pao
[pao@localhost ~]$ cat /test/a
(pao用户被拒绝)但是可以到达该目录
[pao@localhost ~]$ cd /test
[pao@localhost test]$ ll
[pao@localhost test]$ cat a
切换到另一个用户lai(已经创建好的用户)访问
[root@localhost jian]# su - lai
[lai@localhost ~]$ cat /test/a
(允许lai用户访问)
如何设置一个所有人都不可以访问的权限
[root@localhost test]# chmod 000 a
[root@localhost test]# ll
基本组的控制访问
现在去创建两个用户“xixi” “haha”
[root@localhost test]# useradd haha
[root@localhost test]# useradd xixi
把他们放在hua的基本组里面
[root@localhost test]# usermod -g hua xixi
[root@localhost test]# usermod -g hua haha
[root@localhost test]# id xixi
[root@localhost test]# id haha
现在我们把权限改为hua组可以读写执行a文件
[root@localhost test]# setfacl -m g:hua:rwx a
[root@localhost test]# ll
加完文件访问控制列表之后,“+”显示出来
切换用户分别访问
[root@localhost test]# su – keke (已经创建好的用户)
[keke@localhost ~]$ cat /test/a
(拒绝keke用户访问)
[root@localhost test]# su - haha
[haha@localhost ~]$ cat /test/a
(允许haha用户访问)
[root@localhost test]# su - xixi
[xixi@localhost ~]$ cat /test/a
(允许xixi用户访问)
[root@localhost test]# getfacl a
现在文件访问控制列表中有两条:1.pao用户无任何权限;2.hua组的人是有rwx的权限(读写执行)
删除文件访问控制列表
[root@localhost test]# setfacl -x g:hua a
[root@localhost test]# getfacl a
这样操作hua组的信息不存在,剩下pao用户
[root@localhost test]# setfacl -x u:pao a
[root@localhost test]# getfacl a
删除后怎么恢复之前的状态?
[root@localhost test]# setfacl -b a
[root@localhost test]# ll
“+”变回“.”
[root@localhost test]# chmod 000 a
[root@localhost test]# ll
三、3~8描述
图中1、2综上所述,剩下3~8的理解
3.文件的硬链接次数
4.文件的所有者
5.文件的所属组
6.文件的大小(默认为字节)
7.文件的时间(默认为修改时间)
8.文件名