Linux学习-facl文件访问控制列表

FACL(file access control list)

利用文件扩展属性保存额外的访问控制权限facl
正常访问文件访问时,访问文件时是以进程的用户的权限进行访问,先以属主进行判断,进程的属主是否与文件的属主相同,如果不同,接着判断用户是否属于文件的属组,如都不是,则以其他身份执行。
Owner-Group-Other
使用了facl,访问文件时,先以属主进行判断,进程的属主是否与文件的属主相同,然后判断facl,user,如果不同,接着判断用户是否属于文件的属组,然后判断facl,group,如都不是,则以其他身份执行。
Owner->facl,user->Group,facl,group->other
命令:

setfacl

-m:设定
	u:UID perm
	g:GID perm
	为目录设定facl,目录下的所有文件会继承此目录的访问控制列表(facl)
	d:u:UID perm
	d:g:GID perm
-x:取消

getfacl 获取facl权限
例子:

#------------/backup/inittab文件没有添加facl,user写权限,执行添加数据会报错
#创建一个目录
[root@localhost project]# mkdir /backup
[root@localhost project]# cd /backup
[root@localhost backup]# ll -d /backup
drwxr-xr-x. 2 root root 4096 Jan 31 16:56 /backup
[root@localhost backup]# cp /etc/inittab .
[root@localhost ~]# su - water
[water@localhost ~]$ cd /backup
[water@localhost backup]$ ll /backup/inittab 
-rw-r--r--. 1 root root 884 Jan 31 17:07 /backup/inittab
[root@localhost backup]# getfacl inittab
#数据前面带有[#]表示文件的默认属性,包含文件名,属主,属组
# file: inittab
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--
[water@localhost backup]$ echo 123 >>inittab
-bash: inittab: Permission denied
#----------------给/backup目录下的inittab文件添加facl,user读写权限
[root@localhost backup]# setfacl -m u:water:rw inittab
[root@localhost backup]# getfacl inittab
# file: inittab
# owner: root
# group: root
user::rw-
user:water:rw-
group::r--
mask::rw-
other::r--
#添加完acl权限后,文件权限属性后面多了一个+
[root@localhost backup]# ll
total 8
-rw-rw-r--+ 1 root root 906 Jan 31 17:15 inittab

#执行添加数据,数据添加成功
[water@localhost backup]$ echo 123 >>inittab
[water@localhost backup]$ tail -3 inittab
# 
id:3:initdefault:
123
#取消用户权限
[root@localhost backup]# setfacl -x u:water inittab
#------------------对/backup/initab文件添加facl,group权限rw权限,组内的所有成员都可以修改此文件
#project组中有三个用户,分别是water,edison,dizzy
[root@localhost backup]# setfacl -m g:project:rw inittab
[root@localhost backup]# getfacl inittab
# file: inittab
# owner: root
# group: root
user::rw-
group::r--
group:project:rw-
mask::rw-
other::r--
[root@localhost ~]# su - edison
[edison@localhost ~]$ cd /backup
[edison@localhost backup]$ echo edisoneditinittab >> inittab
[edison@localhost backup]$ tail -3 inittab
id:3:initdefault:
123
edisoneditinittab

#设置目录的facl权限,在目录下创建的文件都继承此目录的facl权限
[root@localhost backup]# setfacl -m d:g:project:rw project
[root@localhost backup]# getfacl project
# file: project
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:project:rw-
default:mask::rwx
default:other::r-x
[root@localhost backup]# cd project
[root@localhost project]# touch rootfile
[root@localhost project]# getfacl rootfile
# file: rootfile
# owner: root
# group: root
user::rw-
group::r-x			#effective:r--
group:project:rw-
mask::rw-
other::r--
[root@localhost project]# su - water
[water@localhost ~]$ cd /backup/project
[water@localhost project]$ ls
rootfile
#在project中的用户可以修改文件内容
[water@localhost project]$ echo abc>>rootfile
[water@localhost project]$ tail -3 rootfile
abc
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值