权限 ACL

setfacl 命令:用于管理文件的 ACL 规则,格式为“setfacl [参数] 文件名称”。文件的 ACL 提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制,使用 setfacl 命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。

1、ACL 基本用法

文件权限管理之: ACL 设置基本权限(r、w、x)
UGO 设置基本权限: 只能一个用户,一个组和其他人

一般我们会用这两个命令:

getfacl:取得某个文件/目录的ACL设置项目

setfacl:设置某个文件/目录的ACL设置项目

setfacl 参数

参数意义
-m设置后续acl参数
-x删除后续acl参数
-b删除全部的acl参数
-k删除默认的acl参数
-R递归设置acl,包括子目录
-d设置默认acl

1.1设置:

[root@c66 ~]# touch /home/test.txt
[root@c66 ~]# ll /home/test.txt 
-rw-r--r-- 1 root root 0 Feb 19 11:43 /home/test.txt
[root@c66 ~]# getfacl /home/test.txt 
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@c66 ~]# setfacl -m u:alice:rw /home/test.txt 
[root@c66 ~]# setfacl -m u:john:- /home/test.txt 

1.2查看/删除:

查看:

[root@c66 ~]#  ll /home/test.txt 
-rw-rw-rw-+ 1 root root 0 Feb 19 11:43 /home/test.txt
[root@c66 ~]# getfacl /home/test.txt
# file: home/test.txt
# owner: root
# group: root
user::rw-
user:alice:rw-
user:john:---
group::r--
mask::rw-
other::rw-

设置组 user1的 acl 权限

[root@c66 ~]# setfacl -m g:user1:r /home/test.txt
[root@c66 ~]# getfacl /home/test.txt          //查看   
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
group:user1:r--
mask::r--
other::rw-

删除:

[root@c66 ~]# setfacl -x g:user1 /home/test.txt //删除组 user1的 acl 权限
[root@c66 ~]# setfacl -b /home/test.txt //删除所有 acl 权限
[root@c66 ~]# getfacl /home/test.txt       //查看acl权限      
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
other::rw-
[root@c66 ~]# 

1.3查看帮助

[root@c66 ~]#  man setfacl
SETFACL(1)                     Access Control Lists                     SETFACL(1)
NAME
       setfacl - set file access control lists
SYNOPSIS
       setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ...
       setfacl --restore=file
DESCRIPTION
       This utility sets Access Control Lists (ACLs) of files and directories.  On
       the command line, a sequence of commands is followed by a sequence of files
       (which in turn can be followed by another sequence of commands, ...).
       ......

1.4权限复制

复制file1的 ACL权限给file2

[root@c66 ~]#  getfacl file1 |setfacl --set-file=- file2 
[root@c66 ~]# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@c66 ~]# getfacl file2
# file: file2
# owner: root
# group: root
user::rw-
group::r--
other::r--

[root@c66 ~]# 

2、ACL 高级用法

mask:用于临时降低用户或组(除属主和其他人)的权限
建议:为了方便管理文件权限,其他人的权限置为空

[root@c66 ~]# setfacl -m m::--- /home/test.txt
[root@c66 ~]# getfacl /home/test.txt 
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--                      #effective:---
group:user1:r--                 #effective:---
mask::---
other::rw-

[root@c66 ~]# 

default: 继承(默认)

要求: 希望 alice 能够对/home 以及以后在/home 下新建的文件
有读、写、执行权限

思路:

步骤一: 赋予 alice 对/home 读、写、执行权限

[root@c66 ~]# setfacl -m u:alice:rwx /home
[root@c66 ~]# getfacl /home
# file: home
# owner: root
# group: root
user::rwx
user:alice:rwx
group::r-x
mask::rwx
other::r-x

[root@c66 ~]# 

步骤二: 赋予 alice 对以后在/home 下新建的文件有读、写、执行权限 (使 alice 的权限继承)

[root@c66 ~]# setfacl -m d:u:alice:rwx /home
[root@c66 ~]# getfacl /home                 
# file: home
# owner: root
# group: root
user::rwx
user:alice:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:alice:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

[root@c66 ~]# 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值