三,权限管理

一,ACL 权限

1.1 简介

【添加图片】

ACL权限简介:
但创建的一个用户的权限与属主(rwx),属组(rwx),其他人(—)不同时,也就是需要创建除属主,属组,其他人外的第四种用户是,则需要ACL权限。

查看分区ACL权限是否开启
我们前面的rwx是用户操作文件的权限,ACL本身也是用户操作文件的权限,但是是否可以支持ACL权限,不是说看文件或者用户是否支持,而是看文件所在的分区是否支持ACL权限。

一般是默认开启ACL权限的。

[root@markling ~]# dumpe2fs -h /dev/vda
dumpe2fs 1.42.9 (28-Dec-2013)
dumpe2fs: Bad magic number in super-block while trying to open /dev/vda
Couldn't find valid filesystem superblock.

开启ACL权限

[root@markling ~]# vim /etc/fstab 

1.2 查看与设定

1.2.1 查看ACL权限:

getfacle 文件名

1.2.2 设定ACL权限

setfacl 选项 文件名
选项:
-m			#设定ACL权限
-x			#删除指定的ACL权限
-b			#删除所有的ACL权限
-d			#设定默认ACL权限
-k			#删除默认ACL权限
-R			#递归设定ACL权限

1.3 最大有效权限和删除ACL权限

1.3.1 最大有效权限

上面我们查看ACL权限时,会看到有一个mask,这个就是最大有效权限。

在这里插入图片描述

其实我们所赋予的ACL权限并不是用户真正的权限,还需要与mask**“相与”**之后才能得到用户的真正权限。

【相与】:两边都为真,既为真;有一假,则假。

mask权限是可以通过下列命令进行修改的:

setfacl -m m:rx /project

当我修改为rw后,用户最大拥有的ACL权限就只能是rw了。

1.3.2 删除ACL权限

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

1.4 默认ACL权限和递归ACL权限

1.4.1 默认ACL权限

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

默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件/目录都会继承父目录的ACL权限。

注意!!!

该命令是针对新创建文件/目录的,对已经存在的文件/目录无效,已经存在的文件/目录要进行递归ACL权限

1.4.2 递归ACL权限

递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限

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

但如果我再创建一个新目录或文件,该新目录或文件仍然是不具有ACL权限的,原因很简单,这是在递归命令结束之后才创建的。

这时候我们就需要用到下面的默认权限了

二,文件特殊权限

2.1 SetUID

2.1.1 功能

  • 只有可以执行的二进制程序才可以设定SUID权限。
  • 命令执行者要对程序拥有执行(x)权限。
  • 命令执行者在执行该程序时获得该程序文件属主的身份。(执行时暂时获得所有者身份)

例如:shadow没有任何权限,但是用户在更改密码时会获得暂时的shadow权限

[root@markling ~]# ll /etc/shadow
---------- 1 root root 1290 Aug  7 19:59 /etc/shadow

  • SetUID权限只有在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。

passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码,我们看看passwd的权限,发现多了一个s,也就是说在这个文件的所有者范围内拥有SUID权限。(如果是S,即不能使用)

在这里插入图片描述

红色即危险的SetUID 

 2.1.2 设定SetUID的方法

chmod 4755 文件名	#第2个数代表属主权限,在前面+4则说明赋予SUID权限
chmod u+s 文件名	#执行这个命令用户必须有x权限
  • 取消SUID权限
chmod 755 文件名	
chmod u-s 文件名

2.2 SetGID

2.2.1 SetGID针对文件的作用

(与SetUID很相似)

  • 只有可以执行的二进制程序才可以设定SGID权限。
  • 命令执行者要对程序拥有执行(x)权限。
  • 在执行该程序时,组身份获得该程序文件属组的身份。
  • SetUID权限只有在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效。

locate命令拥有SGID权限,在对应的所属组权限的x的位置改为s。

在这里插入图片描述

2.2.2 SetGID针对目录的作用

  • 普通用户必须对此目录拥有rx权限,才能进入目录。
  • 普通用户在此目录中的有效组会变成此目录的数组。
  • 若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组。

 2.2.3 设定SGID

chmod 2755 文件名
chmod g+s 文件名

2.3 Sticky BIT

2.3.1 SBIT 粘着位作用(只针对目录

  • 粘着位目前只对目录有效。
  • 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限。
  • 如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件,普通用户即使有w权限,也只能删除自己建立的文件。

        tmp目录拥有SBIT,我们可以看到在其他人的权限里有个t

在这里插入图片描述

2.3.2 设置与取消粘着位 

设置(两种方法)

chmod 1755 目录名
chmod o+t 目录名

取消:

chmod 755 目录名
chmod o-t 目录名

三,文件系统属性chattr权限

chattr [+-=][选项] 文件或目录名
+:增加权限
-:删除权限
=:等于某权限

 针对root也限制

选项:

  • i:如果对文件设置i属性,不允许对文件进行删除、改名,也不能添加和修改内容;如果对目录设置i属性,那么只能修改目录下文件的内容,但不允许创建和删除文件。
  • a:如果对文件设置a属性,只能在文件中添加内容(这里只能有echo命令追加内容,不能使用vim),但不能删除、修改内容;如果对目录设置a属性,那么只能在目录中建立和修改文件,但不能删除。
lsattr 文件名    #查看attract权限

四,系统命令sudo权限

4.1 Sudo权限

  • root把本来只能超级用户执行的命令赋予普通用户执行。
  • sudo的操作对象是系统命令。

4.2 Sudo使用

visudo #实际修改的是/etc/sudoers文件

在这里插入图片描述

例如现在我给用户Tony赋予shutdown -r 关机重启命令,则可以这样写

在这里插入图片描述

 但我们不能像root用户一样直接敲命令shutdown -r now示例如下:

sudo -l  #确定该用户为Tony
sudo /sbin/shutdown -r now #输入命令要输入绝对路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值