关于linux:linux-ACL权限管理

30次阅读

共计 1357 个字符,预计需要花费 4 分钟才能阅读完成。

概念

ACL 是 Access Control List(访问控制列表)的缩写,用于 linux 简单的用户权限管制当中。

Cent7 零碎之前,只有零碎装置时创立的文件系统反对 ACL,起初创立的文件系统则不反对。

Cent7 零碎后,不论文件系统是否在装置零碎时被建设,都反对 ACL。

 

命令

getfacl:用于查看 ACL 权限。

setfacl:用于设置 ACL 权限。

 

用法

1. 查看文件或目录权限

getfacl 文件 / 文件夹名

[root@vm1 ~]# getfacl ~
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
group::r-x
other::---

 

2. 批改用户对文件或目录的权限

setfacl -m u:uname:access 文件 / 文件夹名

[root@vm1 ~]# setfacl -m u:young:rwx -R ~   #将 /root 的权限赋予 young
[root@vm1 ~]# getfacl ~
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:young:rwx
group::r-x
mask::rwx
other::---

我将我集体对 /root 文件夹的拜访权限改成了可读可写,而组内用户有读权限,组外用户无任何权限。

接下来进行测试:

[young@vm1 root]$ dd if=/dev/zero of=/root/testfile bs=1M count=20 #创立一个测试文件
记录了 20+0 的读入
记录了 20+0 的写出
20971520 字节 (21 MB) 已复制,0.0154888 秒,1.4 GB/ 秒
[young@vm1 root]$ ll|grep testfile 
-rw-rw-r--  1 young young 20971520 8 月  30 01:49 testfile
[young@vm1 root]$ id nobody
uid=99(nobody) gid=99(nobody) 组 =99(nobody)

确实,young 用户因为被赋权。所以能够在 /root 目录下进行读写;而 nobody 用户因为未被赋权,且不在 root 组内,故什么权限都没有。

测试结束后,咱们应用 setfacl -b /root 勾销方才增加的 ACL 权限。

[root@vm1 ~]# setfacl -b /root
[root@vm1 ~]# getfacl ~
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
group::r-x
other::---

 

3. 批改组对文件或目录的权限:

setfacl g:gid:access 文件 / 目录门路,用法与给用户赋权统一,故不再赘述。

 

4. 挪动 / 复制文件或目录时须要留神的点:

挪动文件 / 目录时,默认连带 ACL 权限一起挪动。

复制文件时,默认不保留权限;须要加应用 cp -p 命令,才保留权限。

 

5. 挂载时须要留神的点:

如原来的文件系统不反对 ACL 权限,咱们能够将其从新挂载。

mount -o remount, acl 挂载点

正文完
 0