linux命令(五)——文件权限管理命令详解

it2023-09-21  91

文章目录

权限管理一、ACL权限1、ACL简介2、查看和设定ACL权限3、最大有效权限与删除ACL权限4、默认ACL权限和递归ACL权限(都只是针对文件的) 二、文件特殊权限1、SetUID2、SetGID3、Sticky BIT——SBIT特殊权限

权限管理

一、ACL权限

1、ACL简介

1)ACL权限简介——解决用户身份(ugo)不够用的情况 关于ACL权限详解可参考http://c.biancheng.net/view/3120.html,这篇文章基本详细解释了。 2)查看分区ACL权限是否开启 dumppe2fs -h /dev/sda3

-h ——仅仅显示超级块儿中的信息,而不显示磁盘组块的详细信息

3)临时开启分区ACL权限

mount -o remount,acl/

4)永久修改ACL权限

vi /etc/fstab #加入ACL(,acl) mount -o remount #重新挂载文件系统或者重启系统,使得修改生效


2、查看和设定ACL权限

1)查看ACL权限

getfacl文件名

2)设定ACL权限 setfacl [选项] 文件名

-m 设定ACL权限 -x 删除指定的ACL权限 -b 删除所有的ACL权限 -d 设定默认ACL权限 -k 删除默认ACL权限 -R 递归设定ACL权限

3)给用户组设定ACL权限

groupadd tgroup2 setfacl -m g:tgroup:rwx /project


3、最大有效权限与删除ACL权限

1)最大有效权限mask mask是用来指定最大有效权限的,如果给用户赋予了ACL权限,是需要和mask权限相与才能得到该用户的真正权限

2)删除ACL权限

setfacl -x u:用户名 文件名 #删除指定用户权限 setfacl -b 文件名 #删除全部ACL用户权限

4、默认ACL权限和递归ACL权限(都只是针对文件的)

1)递归ACL权限 设定子目录和父目录的ACL权限相同

setfacl -m u:用户名:权限 -R 文件名

2)默认ACL权限 给父目录设定默认ACL权限,父目录中所有新建的子文件都会继承父目录的ACL权限

setfacl -m d:u:用户名:权限 文件名

二、文件特殊权限

1、SetUID

1)SUID简介:

只有可以执行的二进制程序才能够设定SUID权限命令执行者要对该程序拥有x(执行)权限命令执行者在执行该程序的时候获得该程序文件宿主的身份(在执行程序的过程中灵魂附体为文件的所属者)SetUID权限只在该程序执行过程中有效,身份改变只在程序执行的过程中有效

passwd 命令拥有SetUID权限,所以普通用户可以修改自己的密码

ll /usr/bin/passswd

cat命令没有SetUID权限,所以普通用户不能够查看/etc/shadow文件中的内容

2)设定SUID方法:(注意用户要有x权限,不然在权限中显示S而非s来报错)

4代表SUID chmod 4755 文件名 chmod u+s 文件名

3)取消SUID方法

chmod 755 文件名 chmod u-s 文件名

4)危险的SetUID

关键目录应该严格控制写权限。比如’/’、‘/usr’等用户的密码设置应该严格遵守密码三原则对系统中应该具有SetUID权限的文件做一列表,定时检查有没有这之外的文件被设置了SetUID权限

2、SetGID

1)SetGID针对文件的作用:

只有可执行的二进制程序才能设置SGID权限命令执行者要对该程序拥有x(执行)权限命令执行者在执行程序的时候,组身份升级为该程序文件的所属组SetGID权限同样只在执行该程序的过程中有效

ll /usr/bin/locate ll /var/lib/mlocate/mlocate.db

/usr/bin/local 是可执行二进制文件,可以赋予SCID 执行用户对/usr/bin/locate命令拥有执行权限 执行/usr/bin/locate 命令时,组身份会升级为slocate组,而slocate组对/car/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令,查询mlocate.db数据库

3、Sticky BIT——SBIT特殊权限

Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。

SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件。

也就是说,当甲用户以目录所属组或其他人的身份进入 A 目录时,如果甲对该目录有 w 权限,则表示对于 A 目录中任何用户创建的文件或子目录,甲都可以进行修改甚至删除等操作。但是,如果 A 目录设定有 SBIT 权限,那就大不一样啦,甲用户只能操作自己创建的文件或目录,而无法修改甚至删除其他用户创建的文件或目录。

举个例子,Linux 系统中,存储临时文件的 /tmp 目录就设定有 SBIT 权限

最新回复(0)