Linux的ACL规则设置——setfacl及getfacl命令的使用详解
admin
2023-03-11 21:42:22
0

Linux系统中可以针对组、用户、其他人设置不同的读写执行权限,但是还不够精准,若想给某个特定的用户设置一个独特的权限呢?而这个用户又不是该文件或目录的属组或属组,怎么破?

针对特定的某个用户设置权限的方法如下:

[root@localhost ~]# dmesg | grep -i acl     #查看系统是否可以设置ACL,若可以查到下面标红的字样,则代表没问题。
[    1.173259] systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +'ACL' +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[    2.487295] SGI XFS with 'ACL's, security attributes, no debug enabled

1、setfacl——设置ACL规则(针对单一用户或组设置)

setfacl的常用选项如下:

  • -m:设置后续的ACL参数给文件使用,不可与-x一起使用;
  • -x:删除后续的ACL参数,不可与-m一起使用;
  • -b:删除所有的ACL设置参数;
  • -k:删除默认的ACL参数;
  • -R:递归设置ACL,就是包括子目录都会被应用;
  • -d:设置默认ACL参数,只对目录有效,在该目录新建的数据会引用此默认值;

设置举例:

[root@localhost ~]# touch acl_test1      #创建一个测试文件
[root@localhost ~]# setfacl -m u:lv:rw acl_test1      #单独赋予用户“lv”读写权限
[root@localhost ~]# ll acl_test1 #查看文件属性,在权限栏最后多了一个“+”,这就是刚设置的ACL
-rw-rw-r--+ 1 root root 0 9月   3 08:45 acl_test1
[root@localhost ~]# setfacl -m u::rwx acl_test1     #若u后面不写用户,则表示设置该文件的属主权限
[root@localhost ~]# ll acl_test1       #会发现属主的权限变成了rwx。
-rwxrw-r--+ 1 root root 0 9月   3 08:45 acl_test1

2、getfacl——查看设置的ACL规则

选项和setfacl基本相同,可以通过man手册来查看具体的使用选项,最主要还是用来查看我们使用setfacl设置的ACL规则;

使用举例:

[root@localhost ~]# getfacl acl_test1      #使用getfacl查看设置的ACL权限
# file: acl_test1       #文件名
# owner: root          #文件属主
# group: root            #文件属组
user::rwx              #属主的权限
user:lv:rw-              #用户“lv”的权限
group::r--               #文件属组的权限
mask::rw-               #此文件默认的有效权限
#用户或群组所设置的权限必须要存在于mask的权限设置范围内才会生效
other::r--                 #其他任何人的权限

[root@localhost ~]# ll acl_test1     #使用“ll”命令查看后,进行比较
-rwxrw-r--+ 1 root root 0 9月   3 08:45 acl_test1

3、setfacl和getfacl综合使用举例:

#1、针对有效权限mask的设置方式
[root@localhost ~]# setfacl -m m:r acl_test1     #设置该文件的权限仅有读权限(r)。
[root@localhost ~]# getfacl acl_test1     #查看
# file: acl_test1
# owner: root
# group: root
user::rwx
user:lv:rw-         #effective:r--    #注释为有效权限只有r(读权限),哪怕用户后面有w(写权限),也不生效
group::r--
mask::r--   #是因为这里,这里有并且用户也具有的权限,才是有效权限,如这里的“r”权限。
other::r--
#2、针对特定群组的方式设置权限(删除了原本的文件,又新建了一个acl_test1):
[root@localhost ~]# setfacl -m g:mygroup:rx acl_test1     #设置mygroup组有rx权限
[root@localhost ~]# getfacl acl_test1     #查看
# file: acl_test1
# owner: root
# group: root
user::rw-
group::r--
group:mygroup:r-x                     #这里就是新设置的权限
mask::r-x
other::r--
#3、让myuser1在/usr/local下面一直具有rx的默认权限
[root@localhost ~]# setfacl -m d:u:myuser1:rx /usr/local/     #设置权限
[root@localhost ~]# getfacl /usr/local/       #查看
getfacl: Removing leading '/' from absolute path names
# file: usr/local/
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:myuser1:r-x               #就是这行咯
default:group::r-x
default:mask::r-x
default:other::r-x
#创建一个目录,并查看是否继承了默认权限
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mkdir test
[root@localhost local]# ls -ld test/      #有“+”的权限,说明继承默认权限了
drwxr-xr-x+ 2 root root 6 9月   3 09:51 test/
[root@localhost local]# getfacl test      #使用getfacl查看
# file: test
# owner: root
# group: root
user::rwx
user:myuser1:r-x
group::r-x
mask::r-x
other::r-x
default:user::rwx
default:user:myuser1:r-x              #就是这行咯
default:group::r-x
default:mask::r-x
default:other::r-x
#以下为取消用户的某些ACL规则
[root@localhost local]# setfacl -x u:myuser1 /usr/local/     #取消myuser1用户对该目录的ACL规则
[root@localhost local]# setfacl -x d:u:myuser1 /usr/local/    #取消递归的ACL规则
[root@localhost local]# setfacl -m u:myuser1:- /usr/local    #使myuser1用户无法使用该目录,在权限字段使用“-”表示即可。

———————— 本文至此结束,感谢阅读 ————————

上一篇:httpd.conf--2.2

下一篇:Linux搭建NTP服务器

相关内容

热门资讯

紧张关系进一步升级,巴西外交部... 【环球网报道】美国《纽约时报》当地时间25日报道称,据美巴两国官员透露,巴西政府阻止了一个美国代表团...
泽连斯基:俄拟再招募3万朝鲜士... 据凤凰卫视报道,乌克兰总统泽连斯基7月25日声称,俄罗斯打算再向朝鲜招募3万名士兵,以支援俄军对乌克...
警察涉嫌猥亵他人,切莫等被害人... 针对媒体报道民警牛某某涉嫌猥亵他人一事,亳州市公安局发布情况通报表示,已“立即成立调查组,全面开展调...
哈萨克斯坦总统说了一番话,普京... 资料图看了视频,确实是非常罕见一幕。一个国家领导人,当面规劝普京结束战争。我看到,这番话一出口,普京...
台风“红霞”成为今年以来登陆我... 根据中央气象台、广东省气象台消息,今年第12号台风“红霞”的中心已于今天(26日)3时50分前后在广...
业界热议AI安全护栏升级路径 ● 本报记者 郑萃颖 近年来,人工智能(AI)技术快速发展,相关安全问题也引发各界关注。接受中国证券...
RISC-V:当开源架构遇见智... 2026年,RISC-V正站在新的历史节点。智能体的崛起、数据中心算力范式的重构,RVA23、RIS...
网络电视不小心按成蓝屏了 1、重新检查并连接好电视机的信号源输入即可。2、检测电视机的信号源输入,如线路、接口松动,则重新连接...
问问海尔的冰箱款式怎么样 最佳回答 海尔冰箱的款式还是很多的,你可以去专卖店看一看,也可以去京东上或者是天猫上看一看,京东和天...
美的中央空调面板按了没反应 美的中央空调面板按了没反应可能有多种原因,以下是一些常见的解决方法:1. 检查电源:确保空调面板已接...