栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

ACL访问控制 getfacl 、setfacl 命令

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ACL访问控制 getfacl 、setfacl 命令

ACL是Access Control List 访问控制列表的缩写,在Linux中ACL可以对单一用户或组的设定访问文件的权限,其优势为让权限控制更加精细化,如:marking.txt文件为市场部文件,管理员拥有该文件的rwx权限,市场部组也拥有该文件的rwx权限,其他人无权限,新招的市场部新员工小王正处于试用期,管理员不想给小王对marking.txt文件的全部权限,只想给他查看该文件的权限,那么这种情况下,使用我们传统的属主属组other权限就无法做到这一点,这时我们可以考虑使用ACL访问控制的解决办法。

getfacl 命令用于查看文件的ACL策略及权限,其语法格式如下:

getfacl [选项] file

常用选项:
无,一般不接选项即可;

演示示例:

[root@iflytek ~]# getfacl  file1 
# file: file1
# owner: root
# group: nginx
user::rwx
group::r--
other::r--

setfacl命令用于给文件针对某个用户或某个组设置ACL策略,其语法格式如下:

setfacl [选项] mode file

常用选项:

-m			:修改acl策略
-x			:删除某个用户或组的权限
-b			:删除所有的acl策略
-R			:递归,级联

mode表示权限设置:

u:用户名:权限		例如  u:oracle:rw
g:组名:权限 			例如 u:macking:r

演示示例:

[root@iflytek /]# ll file1 										#先查看文件的权限
-rwxrwx--- 1 root root 7 Oct  5 22:32 file1
[root@iflytek /]# su oracle										#切换到Oracle用户,Oracle用户属于other类型
[oracle@iflytek /]$ cat file1 									#显示没有权限查看
cat: file1: Permission denied
[root@iflytek /]# getfacl  file1 								#查看原来的权限位
# file: file1
# owner: root
# group: root
user::rwx
group::rwx
other::---

[root@iflytek /]# setfacl -m u:oracle:wrx file1 				#给Oracle用户设置acl策略,使之能读写执行file1文件
[root@iflytek /]# getfacl  file1 
# file: file1
# owner: root
# group: root
user::rwx
user:oracle:rwx													#这里就加多了一行,增加了Oracle的权限
group::rwx
mask::rwx
other::---

[root@iflytek /]# su oracle
[oracle@iflytek /]$ cat file1 									#oracle用户能正常查看file1文件了
dsdsds
[oracle@iflytek /]$ ll file1 
-rwxrwx---+ 1 root root 7 Oct  5 22:32 file1					#发现权限为多了一个+号
[oracle@iflytek /]$ 
[root@iflytek /]# setfacl -b file1								#删除所有ACL策略
[root@iflytek /]# getfacl file1 								#查看删除acl策略后的文件发现没有了acl策略了
# file: file1
# owner: root
# group: root
user::rwx
group::rwx
other::---
[root@iflytek /]# setfacl -m g:macking:r file1 					#对macking组设置acl策略
[root@iflytek /]# getfacl file1 
# file: file1
# owner: root
# group: root
user::rwx
group::rwx														#这个是原来的属组的权限的,不要看错哦
group:macking:r--												#这是我们刚才对macking组添加的acl策略
mask::rwx
other::---

[root@iflytek /]# setfacl -R  -m g:macking:r /usr/local/nginx/	#-R表示递归,级联

[root@iflytek /]# setfacl -x u:oracle file1						#删除某个用户的acl策略
[root@iflytek /]# setfacl -x g:dba file1						#删除某个组的acl策略

总结
当无法使用传统的文件权限控制时我们可以使用ACL访问控制策略实现权限的精细化控制,如,marking.txt文件为市场部文件,管理员拥有该文件的rwx权限,市场部组也拥有该文件的rwx权限,其他人无权限,新招的市场部新员工小王正处于试用期,管理员不想给小王对marking.txt文件的全部权限,只想给他查看该文件的权限。
1、getfacl [选项] file1									#查看文件的acl策略
2、setfacl -m u:oracle:rw file1							#给予Oracle用户对file1文件的rw权限
3、setfacl -m g:macking:r file1							#给予macking组对file1文件的r权限
4、setfacl -R -m g:macking:rwx /usr/local/nginx/		#递归级联给予macking组对nginx目录的rwx权限
5、setfacl -x u:oracle file1							#删除Oracle用户对file1文件的rw权限
6、setfacl -x g:macking file1							#删除macking组对file1文件的权限
7、setfacl -b  file1									#全部删除file1文件的acl策略
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297432.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号