一、Linux权限模型
1、用户身份划分:
user/owner:所属者
group:所属组
others:其他人
2、用户权限划分:
- - - - - - - - - -
- - - 代表 owner 用户的权限
- - - 代表 group 用户组的权限
- - - 代表 others 其他用户的权限
r(read)4 w(write)2 x(execute)1
注:文件默认权限是 644 = -rw-r—r— 目录默认权限是 755 = drwxr-xr-x
二、Linux特殊权限
1、setuid
针对二进制程序设置 让二进制程序从执行者变为拥有者
用法:chmod u+s file
如 passwd 命令 超级用户可以执行去修改/etc/shadow 文件 普通用户执行这个命令后也可以修改/etc/shadow 文件 但是这个文件本 身 ugo 是全 0 的权限 也正是因为通过在 User 的 x 位置上加上 s 权限实现让其从执行者变为拥有者 通常只在运行二进制时生效
2、setgid
针对二进制程序和目录设置 可以让目录下的文件继承目录所属组的权限
用法:chmod g+s dir
3、StickBit 权限 粘滞位 防删除位 SBIT
只作用于目录 目录下的文件只允许 root 用户,文件创建者,目录所有者才能删除,其他用户不能删除
用法:chmod o+t file
4、 ACL 访问控制列表权限
4.1、单个用户权限的设定及取消
4.2多个用户权限的设定使用逗号分割
5、umask权限掩码
umask默认权限有4个八进制数组成
文件或目录的初始权限=文件或目录的最大默认权限—umask权限
(文件默认最大权限是666,目录默认最大权限是777)
umask修改:
6、隐藏属性
lsattr filename :查看文件隐藏属性
chattr +a fileanme:只能向文件中添加数据 不能修改、覆盖
chattr +i fileanme:文件不能被删除、改名、设定硬链接关系、写入或新增