Linux之ACL权限chmod命令

一. chmod命令

chmod命令来自英文词组change mode的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。 设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件,建议加入-R参数进行递归操作,这意味着不仅对于目录本身,而且也对目录内的子文件/目录进行新权限的设定。 语法格式:chmod 参数 文件名

常用参数

二. ACL权限

什么是ACL

ACL是Access Control List的缩写,即访问控制列表。可以通过下列的实例来理解ACL的作用:

2.1操作步骤

复制代码
2.1添加测试目录、用户、组,并将用户添加到组 
[root@localhost ~]# mkdir /project
[root@localhost ~]# useradd zs
[root@localhost ~]# useradd ls
[root@localhost ~]# groupadd tgroup
[root@localhost ~]# gpasswd -a zs tgroup
正在将用户"zs"加入到"tgroup"组中
[root@localhost ~]# gpasswd -a ls tgroup
正在将用户"ls"加入到"tgroup"组中
可以查看组是否正常建立

cat /etc/group

2.2修改目录的所有者和所属组

复制代码
 chown root:tgroup /project
 ll -d /project
drwxr-xr-x.   2 root    tgroup    6 8月  23 13:07 project

2.3设定权限

复制代码
chmod 770 /project
ll -d /project
drwxrwx---. 2 root tgroup 6 8月  23 13:07 /project

2.4为临时用户分配权限

2.4.1添加临时用户

复制代码
[root@localhost ~]# useradd tempuser
[root@localhost ~]# passwd tempuser

2.4.2为临时用户分配特定权限

复制代码
[root@localhost ~]# setfacl -m u:tempuser:rx /project
[root@localhost ~]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
user::rwx
user:tempuser:r-x
group::rwx
mask::rwx
other::---

2.4.3查看目录权限,注意+,表示文件或目录有acl权限

复制代码
[root@localhost ~]# ll -d /project
drwxrwx---+ 2 root tgroup 6 8月  23 13:07 /project

2.5验证acl权限

2.5.1切换到tempuser用户

复制代码
[root@localhost ~]# su tempuser
[tempuser@localhost root]$ 

2.5.2 验证可以进入project目录

复制代码
[tempuser@localhost project]$ cd /project
[tempuser@localhost project]$ 

2.5.3 验证不能在project中创建文件

复制代码
[tempuser@localhost project]$ touch test.txt
touch: 无法创建"test.txt": 权限不够

2.6控制组的ACL权限

2.6.1 创建一个temp组

复制代码
[root@localhost project]# groupadd temp

2.6.2 设置组的ACL

复制代码
[root@localhost project]# setfacl -m g:temp:rx /project

2.6.3 查看设置后ACL

复制代码
[root@localhost project]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
user::rwx
user:tempuser:r-x
group::rwx
group:temp:r-x
mask::rwx
other::---

2.6.4 创建一个用户,并将该用户设置为temp组

复制代码
[root@localhost project]# useradd tempu02
[root@localhost project]# passwd tempu02

2.6.5 将用户添加到temp组中

复制代码
[root@localhost project]# gpasswd -a tempu02 temp
正在将用户"tempu02"加入到"temp"组中

2.6.6 验证

复制代码
[root@localhost project]# su tempu02
# 可以进入目录
[tempu02@localhost project]$ cd /project
[tempu02@localhost project]$ ls
# 不能创建文件
[tempu02@localhost project]$ touch aa.txt
touch: 无法创建"aa.txt": 权限不够

3.mask最大权限

3.1什么是最大权限

复制代码
[root@localhost ~]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
user::rwx
     # 所属用户权限
user:tempuser:r-x
   # 临时用户权限
group::rwx
    # 所属组权限, 文件创建时的所属组
group:temp:r-x
  # 一般组的权限  创建的临时组
mask::rwx
   # 权限掩码,用来控制最大权限  
other::---

最大权限是指: 如果给用户赋予了ACL权限,则用户所获取的权限并不是ACL时所附的权限,而是赋予的ACL权限 与 mask权限 进行 与 操作 之后的权限。例如:user:tempuser:r-x 第一位是r, mask的第一位也是r, 则与操作后,用户则有 r 的权限, user:tempuser:r-x 第二位是 - ,mask的第二位是 w,则与操作后用户则没有 w 的权限。

最大权限的作用:mask的默认值为rwx,即最大权限,任何其他的权限值和mask相"与"都会得到其自身; 可以通过调整mask的方式来控制分配给用户的最大权限,例如: mask值调整为 r-x ,则不管是否给用户分配"w"权限,用户都没有"w"的权限。mask可以用来避免权限分配不当而给系统带来的风险。

4 ACL权限的删除

复制代码
# 删除指定ACL权限
[root@localhost ~]# setfacl -x u:tempuser /project
[root@localhost ~]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
user::rwx
group::rwx
group:temp:r-x
mask::rwx
other::---
# 删除所有ACL权限
[root@localhost ~]# setfacl -b /project
[root@localhost ~]# getfacl /project
getfacl: Removing leading '/' from absolute path names
# file: project
# owner: root
# group: tgroup
+
user::rwx
group::rwx
other::---
# 注意: 权限没有 + 
[root@localhost ~]# ll -d /project
drwxrwx---. 2 root tgroup 6 8月  23 13:07 /project
相关推荐
百锦再1 分钟前
大数据技术的主要方向及其应用详解
大数据·linux·网络·python·django·pygame
2301_8035545215 分钟前
vim,gcc/g++,makefile,cmake
linux·编辑器·vim
noravinsc22 分钟前
国产化中间件 替换 nginx
运维·nginx·中间件
惜.己37 分钟前
Linux常用命令(十四)
linux·运维·服务器
linkingvision1 小时前
H5S 视频监控AWS S3 对象存储
linux·运维·aws·视频监控s3对象存储
doupoa2 小时前
Fabric 服务端插件开发简述与聊天事件监听转发
运维·python·fabric
BillKu2 小时前
服务器多JAR程序运行与管理指南
运维·服务器·jar
QQ2740287562 小时前
BlockMesh Ai项目 监控节点部署教程
运维·服务器·web3
belldeep2 小时前
WSL 安装 Debian 12 后,Linux 如何安装 vim ?
linux·debian·vim
wqqqianqian3 小时前
国产linux系统(银河麒麟,统信uos)使用 PageOffice自定义Word模版中的数据区域
linux·word·自定义·pageoffice·数据区域