Linux的ACL规则设置——setfacl及getfacl命令的使用详解
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,Linux系统中可以针对组、用户、其他人设置不同的读写执行权限,但是还不够精准,若想给某个特定的用户设置一个独特的权限呢?而这个用户又不是该文件或目录的属组或属组,怎么破?针对特定的某个用户设置权限的
千家信息网最后更新 2025年02月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 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: 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安全错误
数据库的锁怎样保障安全
咨询公司能做软件开发吗
数据库中超链接最多
清远专业软件开发平均价格
温州企业管理软件开发定制
自考网络安全可以吗
农村家庭能源消费数据库
阿里云服务器 游戏
c数据库开发实例
全球规模最大的文摘和索引数据库
服务器设在英国要怎么管理
软件开发新公司创业发展现状
清远服装工票软件开发
教师网络安全经历
软件开发外接项目去哪接
链接数据库的步骤
企业网络技术能力
计算机网络技术项目计划书
下载联系人数据库写入和查询
数据库背心在足球训练中的运用
学计算机网络技术掉头发
初中议论作文网络安全
用花生壳搭建服务器
网络技术咨询要求
xp 访问ftp服务器
2u服务器多重
虎门软件开发公司
db2数据库如何建表
天下3演兵主题服务器
ccs软件开发实验流程图
小牛鲜道网络技术有限公司