Linux的ACL规则设置——setfacl及getfacl命令的使用详解
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,Linux系统中可以针对组、用户、其他人设置不同的读写执行权限,但是还不够精准,若想给某个特定的用户设置一个独特的权限呢?而这个用户又不是该文件或目录的属组或属组,怎么破?针对特定的某个用户设置权限的
千家信息网最后更新 2025年12月01日Linux的ACL规则设置——setfacl及getfacl命令的使用详解
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 enabled1、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_test12、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_test13、setfacl和getfacl综合使用举例:
#1、针对有效权限mask的设置方式[root@localhost ~]# setfacl -m m:r acl_test1 #设置该文件的权限仅有读权限(r)。[root@localhost ~]# getfacl acl_test1 #查看# file: acl_test1# owner: root# group: rootuser::rwxuser: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: rootuser::rw-group::r--group:mygroup:r-x #这里就是新设置的权限mask::r-xother::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: rootuser::rwxgroup::r-xother::r-xdefault:user::rwxdefault:user:myuser1:r-x #就是这行咯default:group::r-xdefault:mask::r-xdefault: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: rootuser::rwxuser:myuser1:r-xgroup::r-xmask::r-xother::r-xdefault:user::rwxdefault:user:myuser1:r-x #就是这行咯default:group::r-xdefault:mask::r-xdefault: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用户无法使用该目录,在权限字段使用"-"表示即可。-------- 本文至此结束,感谢阅读 --------
权限
用户
文件
规则
目录
有效
参数
就是
方式
系统
递归
命令
不同
独特
相同
精准
不够
主权
代表
原本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
物流软件开发要什么专业的
别克软件开发
网络安全党组会议记录
龙树互联网科技(上海)
软件服务器租用多少钱一年
数据库中存图片6
数据库表关系怎么查询
学历低可以学网络安全吗
逸锐科技是软件开发公司
服务器和客户机地址配置
河南linux软件开发制作
喋血复仇服务器是谁的
网络安全主题班会内容摘要
网络安全技术应用试点示范申报
java开源服务器
文献被知名数据库收录情况怎么查
山东多功能软件开发代理价钱
连云港服务器精密空调清洗
网络安全防护策略优化
软件开发注册类图
光遇破服务器
直销软件开发如何选择
Linux服务器更改管理口地址
cs1.6服务器2017
小说软件开发
小米域名服务器
博乐出入库管理软件开发
互联网网络技术与应用
hyy云服务器
sql数据库模糊查看