Linux特殊权限

Linux权限管理之特殊权限

ACL(访问控制列表)

用来解决用户对权限的身份不足的问题

使用ACL必须要有文件系统的支持才行


Linux平台上,常见的支持ACL的文件系统有 ext2\ext3\ext4,JFS,XFS等



查看分区ACL权限是否开启

dumpe2fs -h 设备名 | grep "Default mount options" #查看设备的默认挂载权限 (dumpe2fs 只支持ext2/3/4文件系统)



XFS文件系统的超级快信息使用xfs_growfs命令查看


临时开启分区ACL权限

mount -o remount,acl/#重新挂载根分区并加入acl权限


永久开启ACL权限,修改/etc/fstab



查看ACL权限

getfacl 文件名


范例:

[root@VM_0_8_centos home]# getfacl av

# file: av #文件名

# owner: tony#属主

# group: stu #属组

user::rwx #属主的权限

user:lw:r-x #lw用户的权限

group::rwx #属组的权限( effective:r-x #属组的真正权限)

group:tgroup2:rwx#tgroup2组的权限(effective:r-x #tgroup2组的真实权限)

mask::r-x

other::---


ACL最大有效权限mask

mask是用来指定最大有效权限的。给某用户赋予的ACL权限需要和mask权限"相与"才能得到用户的真正权限

配置mask方法:

setfacl -m m:权限 文件名 #设定文件的mask权限


设定ACL权限

setfacl [option] acl参数 文件名


-m :设定ACL权限

-x :删除指定ACL权限

-b :删除所有ACL权限

-d :设定默认ACL权限

-k :删除默认ACL权限

-R :递归设定ACL权限



ACL参数主要由三部分组成:

三种身份:对应身份名:三种权限

[u|g|o] : [用户名|组名]:[rwx]

给用户设定ACL权限:

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


给用户组设定ACL权限:

setfacl -m g:组名:相应权限 文件名



范例:

setfacl -m u:tom:rw- test.txt

setfacl - m g:斯图:rw -你好。txt




删除ACL权限:

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


setfacl - x g:组名文件名#删除指定用户组ACL权限


setfacl - b文件名#删除文件的所有ACL权限



ACL默认权限与递归权限


递归ACL权限

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

设定ACL权限时使用- r权限

递归权限仅能赋予目录,不能赋予文件

递归权限设置时,只会对目录下已经创建的文件和子目录授予相同的ACL权限,此后新建的文件和子目录

不会被授予相同的ACL权限


范例;

setfacl u - m: lw: rw - r/你好。txt



默认ACL权限

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



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



-----------------------------------------------------------------------------------------------------------------------



Linux sudo 权限

root把本来只能超级用户执行的命令赋予普通用户执行

sudo的操作对象是系统命令


给普通用户赋予超级用户的权限

visudo命令


visudo命令打开的文件中给普通用户/用户组赋予权限的格式:


用户名 被管理主机的地址=(可使用的身份) 授权的命令(必须是绝对路径)


%组名 被管理主机的地址=(可使用的身份) 授权的命令(必须是绝对路径)


普通用户执行root用户赋予的命令:

sudo 命令的绝对路径




Linux 文件特殊权限 (特殊权限精量少修改)


SetUID

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

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

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

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



设定SetUID的方法

4代表SUID

Linux特殊权限