Linux权限管理

来源:互联网 发布:地球防卫少年 知乎 编辑:程序博客网 时间:2024/04/26 18:18

普通权限:

三个身份:所有者,所属组,其他人
文件 rwx 读 写 执行
目录 rwx 列出文件 修改目录文件 进入目录

ACL权限

用于解决普通权限身份不够用的问题,需要文件分区支持
查看分区acl权限是否开启
-h /dev/sda3
dumpe2fs 查询指定分区详细文件系统信息
-h 仅显示超级块中的信息
观察default mount options即可

修改/etc/fstab开机自动挂载文件
在default后写“,acl”
重启后生效

设定ACL

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

setfacl -m u:username:rw /filename
u:对用户设定acl,还可以是g,对组设定acl,还可以是 m 代表设置最大有效权限
username:用户名或组名
rw:该用户或组的权限
drwxrwx—+ 2 yin gtest 4096 7月 25 15:27 acltest/
有ACL权限的文件会多一个“+”

查看acl命令
getfacl 文件目录名

最大有效权限mask
acl权限要与mask权限相与后才是acl用户的真实权限
设置mask权限用setfacl -m m:username:rw /filename

删除所有acl权限
setfacl -x u:username /filename #删除指定的acl权限
setfacl -b /filename #删除指定文件的全部acl权限,+ 也会没有

递归acl权限
setfacl -m u:rw -R /filename
-R 只能在示例中的位置,不能在其他位置

默认acl权限
setfacl -m d:u:username:rw -R /filename
默认acl指的是在该目录下以后建立的所有文件都有指定的acl,但对当前已建立的文件没影响

文件特殊权限

SetUID

1.只有可执行的二进制程序才能设置suid
2.命令执行者要有x权限
命令执行者在执行某个有suid权限的程序时获得这个程序文件所有者的身份
suid权限只在改程序执行过程中有效。
passwd命令就有suid权限,因为passwd需要修改shadow文件,而普通用户没有权限去访问shadow,所以
为了普通用户也能修改自己的密码,必须对passwd设置suid
设置suid方法
chmod 4755 filename #4代表suid 2代表sgid
chmod u+s filename
取消suid
chmod 755 filename
chmod u-s filename

SetGID

针对文件
1.只有可执行的程序才能设置sgid
2.命令执行者要有x权限
命令执行者在执行某个有sgid权限的程序时获得这个程序文件所属组的身份
sgid权限只在改程序执行过程中有效。

针对目录
1.命令执行者需要对此目录拥有rx权限
2.用户在此目录下的有效用户组将会变成该目录的所属组
3.用户如果对此目录有w权限,那他在该目录下新建的文件的所属组是该目录的所属组
设置sgid
chmod 2755 filename
chmod g+s filename

Sticky BIT

粘着位
1.只针对目录
2.普通用户对该用户有wx权限
3.对一个目录设置sbit,普通用户即使有写目录权限,也不能删除该目录下其他用户建立的文件
比如/tmp目录

chmod 1755 dir
chmod o+t dir

文件系统属性chattr权限

chattr [+-=] 选项 目录文件名

i   将文件或目录锁死,任何人(包括root)都无法对其进行任何修改。    但注意,如果对目录设置i,是可以对目录下的文件进行修改的,只是无法删除新建文件a   对文件和目录只能增加内容,不能减少内容

lsattr 选项 目录文件名
查看attr
-a 查看指定目录下的文件
-r 查看指定目录

sudo权限

把本来只能由超级用户执行的命令赋予普通用户执行
sudo操作的是系统命令
visudo
修改/etc/sudoers
root ALL=(ALL) ALL
用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

user1 ALL= /sbin/shutdown -h now

sudo -l
查看当前用户有什么sudo命令

原创粉丝点击