Linux---权限管理(ACL权限、特殊位和隐藏属性)

目录

1.ACT权限

1.1什么是ACT权限

1.2ACT图解

2.操作步骤

2.1添加测试目录、用户、组,并将用户添加到组

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

2.3设定权限

2.4为临时用户分配权限

2.4.1添加临时用户

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

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

2.5验证acl权限

2.5.1切换到tempuser用户

[2.5.2 验证可以进入project目录](#2.5.2 验证可以进入project目录)

[2.5.3 验证不能在project中创建文件](#2.5.3 验证不能在project中创建文件)

2.6控制组的ACL权限

[2.6.1 创建一个temp组](#2.6.1 创建一个temp组)

[2.6.2 设置组的ACL](#2.6.2 设置组的ACL)

[2.6.3 查看设置后ACL](#2.6.3 查看设置后ACL)

[2.6.4 创建一个用户,并将该用户设置为temp组](#2.6.4 创建一个用户,并将该用户设置为temp组)

[2.6.5 将用户添加到temp组中](#2.6.5 将用户添加到temp组中)

[2.6.6 验证](#2.6.6 验证)

3.mask最大权限

3.1什么是最大权限

[4 ACL权限的删除](#4 ACL权限的删除)


1.ACT权限

1.1什么是ACT权限

ACT权限是指在区块链技术中,用于对智能合约进行执行操作的权限。ACT(Action)是指在区块链上执行的操作单元,例如发送交易、调用合约等。授予ACT权限意味着在区块链上具有执行智能合约的能力,可以进行资产的转移、合约的调用等操作。ACT权限通常是由区块链网络的管理员授予给用户或智能合约,以确保合约的执行符合特定的规则和逻辑。

1.2ACT图解

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

2.操作步骤

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 小时前
PeerDAS + 灵活扩容,以太坊 Fusaka 升级重构 L2 费用与性能逻辑
重构·区块链
陀螺财经3 小时前
加密热潮“席卷”美国军界
大数据·人工智能·区块链
Sui_Network3 小时前
21shares 在纳斯达克推出 2 倍 SUI 杠杆 ETF(TXXS)
大数据·人工智能·游戏·金融·区块链
币圈菜头11 小时前
GAEA 项目 TGE 日期确认及其情感 AI 技术路径分析
人工智能·web3·去中心化·区块链
友莘居士11 小时前
深入浅出:以太坊虚拟机(EVM)存储模型设计与权衡
jvm·区块链·虚拟机·solidity·evm·合约调用
谈笑也风生11 小时前
浅谈:被称为新基建的区块链(五)
区块链
傻小胖11 小时前
4.BTC-协议-北大肖臻老师客堂笔记
区块链
Ynchen. ~11 小时前
[深度解析] 信任的重构:从盲签名到区块链的不可篡改哲
区块链·隐语
币圈菜头1 天前
【空投速递】GAEA项目解析:首个集成人类情感数据的去中心化AI训练网络
人工智能·web3·去中心化·区块链
搞科研的小刘选手1 天前
【经管专题会议】第五届大数据经济与数字化管理国际学术会议(BDEDM 2026)
大数据·区块链·学术会议·数据化管理·经济理论