1、ACL权限的简介与开启

    Linux权限只有所属者,所属组和其他人,身份权限不够用,但是ACL权限可以解决这个问题,具体做法是找到这个人的id,赋予其权限即可。

    查看分区的ACL权限是否开启:

        dumpe2fs -h /dev/sda3

    #dumpe2fs命令是查询指定分区详细文件系统信息的命令

    #-h选项:仅仅显示超级块中信息,而不显示磁盘块组的详细信息。

默认挂载选项:

Linux权限管理_用户名

临时分区开启ACL权限:

    mount -o remount,acl /

    #重新挂载根分区,并挂载加入acl权限

永久开启分区ACL权限:

    vi /etc/fstab

    #加入ACL权限

    mount -o remount /

    #重新挂载文件系统或者重启系统,使得修改生效

查看ACL命令:

    getfacle 文件名

    #查看ACL权限

设定ACL权限的命令:

    setafacl 【选项】 文件名

        -m    设定ACL权限

        -x      删除指定的ACL权限

        -b     删除所有的ACL权限

        -d     设定默认的ACL权限

        -k      删除默认的ACL权限

        -R      递归设定ACL权限

在根下建立工程目录,建立用户和组,添加用户到组

Linux权限管理_文件名_02

Linux权限管理_普通用户_03

setfacl -m u st:rx /project/

#给用户st赋予r-x权限,使用“u:用户名:权限”格式

Linux权限管理_用户名_04

最大有效权限mask

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

修改最大有效权限

setfacl -m m:rx 文件名

#设定mask权限为r-x。使用“m:权限”格式

删除ACL权限:

setfacl -x u 用户名 文件名

#删除指定用户的ACL权限

setfacl -x g:组名 文件名

#删除指定用户组的ACL权限

setfacl -b 文件名

#会删除文件的所有acl权限

Linux权限管理_普通用户_05

递归ACL权限:

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

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

Linux权限管理_用户名_06

+ 是赋予了其他权限

默认的ACL权限

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

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

    #只是针对于新的用户才确定的,已经确定的文件不能赋予其权限

Linux权限管理_用户名_07


2、文件特殊权限

1、SetUID

功能:

1、只有可执行的二进制程序才能设定SUID权限

2、命令执行者要对该程序拥有x(执行)权限

3、命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)

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

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

usr/bin/passwd

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

    ll /bin/cat

Linux权限管理_文件名_08

设定SetUID的方法

    4代表SUID

        chmod 4755 文件名

        chmod u+s文件名

含义:

    1代表着SBIT权限

    2代表着SGID权限

    4代表着SUID权限

1+2+4=7代表者SUID SGID SBIT不过并没有意义 针对的操作对象不一样

    change mod 改变权限是方式

Linux权限管理_普通用户_09

Linux权限管理_用户名_10

取消SetUID的方法

    chmod 755 文件名

    chmod u-s 文件名

Linux权限管理_文件名_11

S是报错,没有符合suid的执行权限

Linux权限管理_普通用户_12

Linux权限管理_文件名_13

切换为普通用户:

Linux权限管理_普通用户_14

只要是给vim设置了suid,那么切换为普通用户可以把配置文件普通用户id修改为0,普通用户成为了超级用户

Linux权限管理_普通用户_15


Linux权限管理_文件名_16

2、SetGID

Linux权限管理_普通用户_17

3、Sticky BIT

3、文件系统属性chattr权限

4、Sudo权限