linux下ACL权限和掩码权限

🎯 本文专栏:Linux
🚀 作者主页:小度爱学习

在这里插入图片描述

1、ACL 权限

ACL 权限分配:给指定的用户指定目录分配指定的权限。

1.1、ACL权限管理命令

查看ACL权限

[root@localhost ~]# getfacle 文件名

设定ACL权限

语法: setfacl 选项 文件名

选项:

-m:设定 ACL 权限。如果是给予用户 ACL 权限,则使用 u:用户名:权限 格式赋予;如果是给予组 ACL 权限,则使用 g:组名:权限" 格式赋予;

-x:删除指定的 ACL 权限;

-b:删除所有的 ACL 权限;

-d:设定默认 ACL 权限。只对目录生效,指目录中新建立的文件拥有此默认权限;

-k:删除默认 ACL 权限;

-R:递归设定 ACL 权限。指设定的 ACL 权限会对目录下的所有子文件生效;

 #给用户和用户组添加ACL权限 
 给用户设定 ACL 权限:setfacl -m u:用户名:权限 指定文件名 
 给用户组设定 ACL 权限:setfacl -m g:组名:权限 指定文件名 
 #通过加上选项 -R 递归设定文件的 ACL 权限,所有的子目录和子文件也会拥有相同的ACL权限 
 setfacl -Rm u:用户名:权限 -R 文件名 
 # 如果给父目录设定了默认的 ACL 权限,那么父目录中所有新建的子文件会继承父目录的ACL权限 
 setfacl -m d:u:用户名:权限 文件名 setfacl -md u:用户名:权限 文件名

示例:所有者root用户在根目录下创建一个文件目录/project,然后创建一个QQ群所属组,所属组里面 创建两个用户zhangsan和lisi。此文件权限是770。

然后创建一个旁听用户 pt,给他设定/project目录的 ACL 为 r-x。

[root@kongd ~]# mkdir /project
[root@kongd ~]# useradd zhangsan
[root@kongd ~]# useradd lisi
[root@kongd ~]# groupadd QQgroup
[root@kongd ~]# gpasswd -M zhangsan,lisi QQgroup
[root@kongd ~]# chown root:QQgroup /project/
[root@kongd ~]# chmod 770 /project/
[root@kongd ~]# ll -d /project/
drwxrwx---. 2 root QQgroup 6 12月 30 14:15 /project/

目录 /project 的所有者和所属组其他人权限设定为 770。接下来我们创建旁听用户 pt,并赋予 acl 权限

[root@kongd ~]# useradd pt
[root@kongd ~]# setfacl -m u:pt:rx /project/
注意如下所示,如果某个目录或文件下有 + 标志,说明其具有 acl 权限。
[root@kongd ~]# ll -d /project/
drwxrwx---+ 2 root QQgroup 6 12月 30 14:15 /project/
[root@kongd ~]# getfacl /project/
getfacl: Removing leading '/' from absolute path names
# file: project/
# owner: root
# group: QQgroup
user::rwx
user:pt:r-x
group::rwx
mask::rwx
other::---

为了验证 pt 用户对于 /project 目录没有写权限,我们用 su 命令切换到 pt 用户,然后进入 /project 目 录,在此目录下创建文件,看是否能成功:

[root@kongd ~]# su - pt
[pt@kongd ~]$ cd /project/
[pt@kongd project]$ touch test.txt
touch: 无法创建 'test.txt': 权限不够

1.2、删除acl权限

#删除指定用户的 ACL 权限
setfacl -x u:用户名 文件名
#删除指定用户组的 ACL 权限
setfacl -x g:组名 文件名
#删除文件的所有 ACL 权限
setfacl -b 文件名

2、权限掩码umask

2.1、设置新建文件或目录的默认权限

在Linux系统中,当用户创建一个新的文件或目录时,系统都会为新建的文件或目录分配默认的权限,该默认权限与umask值有关,其具体关系是:

新建文件的默认权限=0666-umask值

新建目录的默认权限=0777-umask值

  • 分别查看、修改用户当前默认的umask值。
[root@localhost ~]# umask                       //查看当前用户的umask权
限
0022
[root@localhost ~]# touch file800
[root@localhost ~]# mkdir dir800
[root@localhost ~]# ll -d dir800 file800 
drwxr-xr-x. 2 root root 4096 3月  11 19:40 dir800
-rw-r--r--. 1 root root    0 3月  11 19:40 file800

#修改shell umask值(临时)
[root@localhost ~]# umask 000
[root@localhost ~]# mkdir dir900
[root@localhost ~]# touch file900
[root@localhost ~]# ll -d dir900 file900 
drwxrwxrwx. 2 root root 4096 3月  11 19:44 dir900
-rw-rw-rw-. 1 root root    0 3月  11 19:44 file900

#修改shell umask值(永久)
[root@localhost ~]# vim /etc/profile   
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
   umask 002
else
   umask 022
fi
[root@localhost ~]# source /etc/profile       //立即在当前shell中生效

#通过umask决定新建用户家目录的权限
[root@localhost ~]# vim /etc/login.defs 
UMASK           077
[root@localhost ~]# useradd gougou
[root@localhost ~]# ll -d /home/gougou/
drwx------. 4 gougou gougou 4096 3月  11 19:50 /home/gougou/
[root@localhost ~]# vim /etc/login.defs
UMASK           000
[root@localhost ~]# useradd yangyang
[root@localhost ~]# ll -d /home/yangyang/
drwxrwxrwx. 4 yangyang yangyang 4096 3月  11 19:53 /home/yangyang/

#例如vsftpd进程 /etc/vsftpd/vsftpd.conf 【了解】
anon_umask=007
local_umask=000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值