zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Linux特殊权限 | ACL

2023-02-18 16:38:31 时间

文章目录

特殊权限(扩展)

设置位S(针对二进制文件)

☆ 设置位S的作用

作用:为了让一般使用者临时具有该文件所属主/组的执行权限。

主要针对二进制文件(命令)

例如:/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢?

whereis命令,主要功能就是查询某个命令所在的路径,基本语法 => whereis passwd

itops普通账号 => 执行/usr/bin/passwd => 修改/etc/shadow文件(存放用户的密码)

/etc/shadow文件比较特殊,其权限为— — —(000),除root外,其他人都没有权限

☆ 去除S位权限

# chmod u-s /usr/bin/passwd 
或者
# chmod 0755 /usr/bin/passwd

☆ 添加S位权限

# chmod u+s /usr/bin/passwd
或者
# chmod 4755 /usr/bin/passwd

粘滞位T(针对文件夹)

☆ 粘滞位作用

基本语法:

# chmod -R o+t 文件夹的名称
或
# chmod -R 1777 文件夹的名称

主要功能:只允许文件的创建者和root用户删除文件(防止误删除权限位)

案例:/tmp文件夹,拥有最高权限777,比如itops创建了一个文件在此目录,linuxuser用户可以对其进行删除操作,这种显然不太合适。

7 = r + w + x = 可读、可写、可执行

案例:使用ls -l命令查看/tmp目录权限

# ls -ld /tmp
或
# ll -d /tmp

☆ 移除粘滞位

# chmod -R o-t /tmp
或
# chmod -R 0777 /tmp

☆ 添加粘滞位

# chmod -R o+t /tmp
或
# chmod -R 1777 /tmp

ACL访问控制

为什么需要ACL

ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户设定访问文件的权限。

扩展:ACL权限可以针对某个用户,也可以针对某个组。ACL优势就是让权限控制更加的精准。

获取某个文件的ACL权限

基本语法:

# getfacl 文件或目录名称

给某个文件设置ACL权限

# setfacl [选项] 文件或目录名称
选项说明:
-m : 修改acl策略
-x : 去掉某个用户或者某个组的权限
-b : 删除所有的acl策略

-R  :递归,通常用在文件夹

案例:针对readme.txt文件给linuxuser设置一个权限=>可读

# setfacl -m u:linuxuser:r readme.txt	=>  针对某个用户开通ACL权限

案例:针对shop文件夹给itops组设置一个权限=>可读可写权限rw

# setfacl -R -m g:itops:rw shop	=> 	针对某个用户组开通ACL权限

案例:把linuxuser用户权限从readme.txt中移除掉

# setfacl -x u:linuxuser readme.txt

案例:把itops用户组权限从shop中移除掉

# setfacl -x -R g:itops shop

案例:把readme.txt文件中的所有ACL权限全部移除

# setfacl -b readme.txt