一、文件系统权限(vfs提供)
devic->filesystem->vfs(虚拟文件系统)
vfs提供了权限控制
二、文件系统普通/标准权限
(1)、UGO权限
ls -l:查看权限
UGO权限:文件所属人:文件所属组
UGO,不包括第一位文件类型和最后一位,三位为一组
U(user):所属人
G(group):所属组
O(other):其他人
访问文件先检查是否文件所属人(Owner),实际比对UID,匹配则检查第一个三位组U,是否具有。然后检查文件所属组(Group),如果有则对比G。如果既不是所属人,也不是所属组的成员,则对比查看O
(2)、文件权限
r:读
针对文件,读取浏览(cat)
针对目录,浏览目录(ls)
w:写
针对文件,编辑
针对目录,在目录中创建/删除
x:执行
主要针对脚本,是否可以执行
进入目录(cd)
-:没有权限
(3)、目录只可能出现两种权限
rwx:读和执行不分家
r-x:
(4)、权限更改
更改所属人
chown:更改所属人
chown 用户名 a.txt
更改所属组
chgrp:更改所属组
· chgrp 组名 文件名
chwon 所属人.所属组 文件名:一次更改所属人及所属组,.可以替换为:
.前不写代表不更改所属人
(5)、更改权限(chmod)
1)符号法
chmod u+w 文件名:给第一个三位组增加w权限
chmod g-x:给第二个三位组去掉x权限
chmod o=r:第三个三位组只有r选项
ug+w、go-w、a=rw(所有均只有rw权限)
2)数字法
r--:100:4
-w-:010:2
--x:001:1
可以组合十进制如:chmod 600 文件名
只有管理员才能更改所属人,文件的所属人或管理员才能更改所属组
普通用户:1.文件的所属人 2.如果文件所属组不是自己的所属组(主要/次要),可以将所属组该为自己的所属组
文件权限:root、文件所属人
三、文件系统默认权限
(1)、umask(用户掩码)
管理员:0022、用户:0002
(2)、更改umask:umask
(3)、文件默认权限
管理员:644,只有管理员能编辑
用户:664
(4)、目录默认权限
管理员:755
用户:775
(5)、默认权限(文件666、目录777)与umask运算后才能得到最终权限
umask中第一个数字为特殊权限,剩下三位默认为ugo
四、文件系统高级/特殊权限
(1)、SUID、SGID、Sticky
可执行文件(系统管理类命令):SUID、SGID
目录:SGID、Sticky
(2)复用,分别放在UGO中x位表示
s代表有x,S代表没有x(O位为t和T)
(3)、设置权限
1)符号法
SUID:chmod u+s
SGID:chmod g+s
Sticky:chmod o+t
后边的不区分大小写,系统会自动判断
2)数字法
SUID 4、SGID 2、Sticky 1
chmod 4755/2755/1777
(4)、作用
1)SUID
进程默认身份谁执行是谁(euid),suid存在则变化,以可执行文件的所属人的身份读写
SUID:系统中的一些系统管理命令,这些命令的所属人一般都是root
SUID也称为提权
如/etc/shadow权限位--- --- ---,可以通过passwd(进程,有身份)来更改密码
默认情况下,进程谁执行身份就是谁
默认情况下uid与进程身份euid一样
passwd:rwsr-xr-x
SUID存在,则以可执行文件的所属人的身份执行
2)SGID
以文件所属组的身份来运行
当一个目录有SGID,目录下创建文件及文件夹的所属组 ,默认的组会继承该目录的所属组3)Sticky
当目录具有该位时,该目录下创建的文件只有创建者自己才能删,其他用户具有完全权限也无法操作
五、文件系统访问控制列表
(1)、传统文件让某人访问
改文件所属人、给root组加w权限,将需要用户加入该组、给other加w权限<=====传统UGO缺陷:O范围过大
(2)、访问控制列表
setfacl:设置文件访问控制列表
setfacl -m u:用户名:权限 a.txt
m:编辑设置acl、u:说明是给用户设置、给某个文件设置了acl后,最后一位为+、给组设置将u改为g即可
x:单独删除acl,如setfacl -x u:user a.txt
b:清除所有acl,如setfacl -b a.txt
(3)、setfacl -m d:u:用户名:权限 目录/
在目录下创建的文件某用户均有访问修改权限,加d(default)只能应用于目录
(4)、getacl:查看访问控制列表
(5)、mask:系统的安全底限,防止给用户设置权限过大,用户超越权限以mask为准
setfacl -m m:r 文件名
六、文件属性(chattr)
·lsattr 文件名:用来查看文件系统属性
·chattr +/-属性 文件名称:
·i:i属性可使文件不能被删除、改名,设置连接也无法写入或添加数据。对于系统安全性有很大帮助。只有root能设置此属性。
·a:当设置a后,文件只能增加数据,既不能删除也不能修改数据,只有root才能设置这个属性