Linux笔记—权限管理
其他
2020-02-17 18:18:24
阅读次数: 0
ACL权限(Access Control List)
- 解决所有者、所属组、其他人三种身份外其他身份不足的情况
ACL权限简介与开启方式(由磁盘分区决定)
查看分区ACL权限是否开启 dumpe2fs -h /dev/sda3
- -h:仅显示超级块中信息,而不显示磁盘块组的详细信息
- 先用df -h 查看分区
临时开启分区ACL权限 mount -o remount,acl /
永久开启分区ACL权限
- vi /etc/fstab 相应选项修改,加入acl
- mount -o remount / # 重新挂载文件系统或重启动系统,使修改生效
查看与设定
查看ACL 权限 getfacl 文件名
设定ACL权限setfacl [选项] 文件名
- -m:设定ACL权限
- -x:删除指定的ACL权限
- -b:删除所有的ACL权限
- -d:设定默认的ACL权限
- -k:删除默认ACL权限
- -R:递归设定ACL权限
给用户设定ACL权限setfacl -m u:st:rx /project/ #给用户st赋予r-x权限,使用"u:用户名:权限"格式
给用户组设定ACL权限setfacl -m g:tgroup2:rwx #为用户组tgroup2赋予rwx权限,使用"g:组名:权限"格式
最大有效权限与删除
最大有效权限mask
- mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限”相与“才能得到用户的真正权限
修改最大有效权限setacl -m m:rx 文件名 #设定mask权限为r-x。使用"m:权限"格式
删除ACL权限
删除指定用户的ACL权限setfacl -x u:用户名 文件名
删除指定用户组的ACL权限setfacl -x g:用户组名 文件名
删除整个文件的所有ACL权限setfacl -b 文件名
默认与递归ACL权限
递归ACL权限 setfacl -m u:用户名:权限 -R 文件名
- 递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限
默认ACL权限setfacl -m d:u:用户名:权限 文件名
- 默认ACL权限的作用是如果给父目录设定了ACL权限,那么父目录中所有新建的子文件都继承父目录的ACL权限
文件特殊权限
SetUID(只针对二进制文件)
SetUID的功能
- 只有可以执行的二进制程序才能设定SUID权限
- 命令执行者要对该程序拥有x(执行)权限
- 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
- SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
SetUID举例
- passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码(/etc/shadow文件权限默认是000)
- cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容
设定SetUID的方法
4代表SUID
- chmod 4755 文件名
- chmod u+s 文件名
危险的SetUID
- 关键目录应严格控制写权限。比如"/"、"/usr"等
- 用户的密码设置要严格遵守密码三原则
- 对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限
SetGID(针对二进制文件和目录)
SetGID针对文件的作用
- 只有可执行的二进制文件才能设置SGID权限
- 命令执行者要对该程序拥有x(执行)权限
- 命令执行在执行程序的时候,组身份升级为该程序文件的属组
- SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效
SetGID针对目录的作用
- 普通用户必须对此目录拥有r和x权限,才能进入此目录
- 普通用户在此目录中的有效组会变成此目录的属组
- 普通用户在此目录拥有w权限时,新建的文件的默认属组是这个目录的属组
设定SetGID
2 代表SGID
- chmod 2755 文件名
- chmod g+s 文件名
Sticky BIT(普通用户就算拥有了w写权限,也只能删除自己建立的文件)
SBIT黏着位作用
- 黏着位目前只对用户有效
- 普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限
- 如果没有黏着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了黏着位,除了root可以删除所有文件,普通用户就算拥有了w权限,也只能删除自己建立的文件,而不能删除其他用户建立的文件
设置黏着位
1 代表黏着位
- chmod 1755 目录名
- chmod o-t 目录名
取消黏着位
文件系统属性chattr权限(相当于锁定文件或目录、保护文件不被误删除)
chattr [±=] [选项] 文件或目录名
- +:增加权限
- -:删除权限
- =:等于某权限
- i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据,而不允许建立和删除文件(即使是root用户)
- a:如果对文件设置a属性,那么只能在文件中增加数据,而不能删除或修改数据(可以理解成只能使用echo命令往文件追加内容,而不能使用vim编辑器);如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除
查看文件系统属性 lsattr [选项] 文件名
- -a:显示所有文件和目录
- -d:若目标是目录,仅列出目标本身的属性,而不是子文件的
sudo 绝对路径 #给普通用户赋予root权限操作命令
- root把本来只能超级用户执行的命令赋予普通用户执行
- sudo的操作对象是系统命令
visudo修改sudo文件
root ALL=(ALL) ALL #用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
例:授权sc用户可以重启服务器(root下)
- visudo
- sc ALL=/sbin/shutdown -r now
普通用户执行sudo赋予的命令
- su - sc
- sudo -l # 查看可用的sudo命令
- sudo /sbin/shutdown -r now #普通用户执行sudo赋予的命令
发布了62 篇原创文章 ·
获赞 6 ·
访问量 3146
转载自blog.csdn.net/Felix_hyfy/article/details/104361710