-
解决身份不足问题
-
查看分区是否支持ACL权限
- dumpe2fs -h /dev/sda1
- 看到 Default mount options: acl 就是支持的
- 需要临时开启的话 mount -o remount,acl / 就可以了
- 重新挂载根分区,并挂载加入acl权限的意思 -o支持特殊挂载选项
- 永久生效需要修改 /etc/fstab文件 开机自动系统挂载文件
- 在UUID=最后加,acl
- 重启 或 重新挂载 mount -o remount /
- 这个文件是系统默认开机启动文件,修改要小心
-
getfacl 文件名 查看文件acl权限
-
setfacl 选项 文件名
- -m 设定ACL权限
- -x 删除指定的ACL权限
- -b 删除所有的ACL权限
- -d 设定默认ACL权限
- -k 删除默认ACL权限
- -R 递归设定ACL权限
- setfacl -m u:st:rx /project/
- 给组给权限 setfacl -m g:tgroup2:rwx /project/
-
最大有效权限
- sefacl -m m:rx /project
-
递归权限 只是加-R 必须放在后边
- setfacl -m u:用户名:权限 -R 目录
-
默认acl权限的作用是如果给父目录设定了默认acl权限 那么父目录中所有新建的子文件都会继承父目录的acl权限
- setfacl -m d:u:用户名:权限 目录
-
文件特殊权限
-
setUID 只能给文件
- 只有可移植性的二进制程序才能设定suid权限
- 命令执行者要对该程序拥有x执行权限
- 命令执行者在执行该程序时获得该程序文件属组的身份
- 权限只在该程序执行过程中有效,身份改变只在程序执行过程有效
- 设置suid方法 4代表suid
- chmod 4755 文件名
- chmod u+s 文件名
- 取消suid方法
- chmod 755 文件名
- chmod u-s 文件名
- 危险的setUID
- 关键目录应严格控制写权限 比如/和/usr
- 用户的棉麻设置要严格遵守密码三原则
- 对系统中默认应该具有setUID权限的文件做一列表 定时检查有没有这之外的文件被设置了setUID权限
-
setGID 类似setuid 能给目录和文件
- ll /usr/bin/locate 实际时查 ll /var/lib/mlocate/mlocate.db 数据库 这个时候是给用户赋予了slocate组
- 设定setgid
- chmod 2755 文件名
- chmod g+s 文件名
- 取消setgid
- chmod 755 文件名
- chmod g-s 文件名
·
-
sticky bit
- 粘着位权限 只能给目录分配
- 意思是用户对文件夹内文件有写权限时,为了防止其删除其他用户文件,禁止其删除
- 设置粘着位
- chmod 1755 目录名
- chmod o+t 目录名
- 取消粘着位
- chmod 777 目录名
- chmod o-t 目录名
-
文件系统属性权限chattr
- change file attributes on a Linux file system 能限制root
- chattr 【+-=】【选项】 文件或目录名
- -i 对文件 不允许对文件删除 改名 不能添加和修改数据 对目录 只能修改目录下文件的数据 但不允许建立和删除文件
- -a 对文件 只能在文件中添加数据 不能删不能改 对目录 只能建立和修改文件 不能删
-
查看文件系统属性 lsattr 选项 文件名
- a 显示所有文件和目录
- d 目标是目录 仅列出目录本身的属性 而不是子文件
-
-
sudo权限
-
root把本来只能超级用户执行的命令赋予普通用户执行
-
sudo的操作对象是系统命令
-
visudo 实际修改的是/etc/sudoers文件 (可以用man 5 sudoers查看帮助)
-
root ALL=(ALL) ALL 意思是用户名 被管理主机的地址=(可使用的身份) 授权的身份(绝对路径)
-
%wheel ALL=(ALL) ALL %组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
-
实例
- visudo
- sc ALL=/sbin/shutdown -r now 在visudo中添加
- su - sc su到sc
- shutdown -r now 执行不了
- sudo -l 查看能执行什么
- 看到的是要用root身份来执行shutdown命令
- sudo /sbin/shutdown -h now
-
实例2
- visudo
- sc 192.168.3.33=/usr/bin/vim
-