三、用户权限
1、权限的三种类型
读: r=4
写: w=2
执行: x=1
2、权限设置
权限对象:
u:属主
g:属组
o:其他人
a(u+g+o):所有人
(1)符号设置:
chmod 参数[-R] 对象[u/g/o] 赋值符[+/-/=] 权限类型[r/w/x] 文件目录/文件名
-R # 赋值文件夹下所有文件的权限
(2)数字设置:
chmod 777 文件/目录(三个位置的数字分别表示为u,g,o 且r=4,w=2,x=1)
3、修改属主,属组
(1)可修改属组与属主:
chown 用户名:组名 文件/目录
(2)修改属组:
chgrp 组名 文件/目录
-R # 递归修改目录下的文件属性
以上权限为UGO,为用户的基本权限
4、ACL权限
普通用户只能指定u/g/o的权限类型,可以借助于acl特别指定某位用户的权限
ACL access controll list 限制用户对文件的访问
访问 控制 列表
ACL是UGO的补充,或者说是加强版
(1)设置acl权限
setfacl -m [u/g/o]:user名/gruop名:[r/w/x] 文件/目录
-m:设置acl权限
(2)查看acl权限
getfacl 文件名
(3)删除acl权限
setfacl -x [u/g/o]:user/gruop 文件/目录
setfacl -x u:user01 1.txt
setfacl -b 文件/目录 # 删除该文件所有的acl权限
5、特殊权限
(1)SUID:针对可执行二进制文件。用户执行该文件是,可暂时获得属主的权限。在user执行为表现为s/S[s:代表是一个可执行文件,S:代表没有执行权限]
(2)SGID:当SGID作用于文件时,用户在执行该文件时将暂时获得该文件的属组权限。当SGID作用于目录时,若用户对该目录具有w和x权限,则用户在该目录下所创建的属组将和该目录的属组相同。在group执行为表现为s/S
(3)SBIT:仅针对目录,当用户在该目录下创建新文件或目录时,仅有自己和root才有权力删除。在other执行为表现为t/T
(4)设置特殊权限:
chmod 4755 文件/目录 # 第一个数字为特殊权限,SUID=4,SGID=2,SBIT=1
6、特殊权限
(1)查看文件特殊属性
`lsattr 文件名`
lsattr属性注释
参数 | 功能 |
---|---|
i | 锁定文件,目录【不能对文件进行增删该,root也不例外】 |
A | 不允许更新文件访问时间 |
c | 文件在磁盘会自动进行压缩 |
d | 不能使用dump命令备份文件 |
D | 设置文件夹的属性时,更改会在同步保存在磁盘上 |
a | 只允许在这个文件中进行追加操作,【只能在最后一行进行追加】 |
注:各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项
(2)设置文件特殊属性
chattr [+/-] [属性] 文件名
属性i:表示该文件不能被改动
7、默认权限
umask:表示默认要减掉的权限
(1)查看默认权限:umask
目录的默认权限是755
0777
-0022
——————
0755 # 系统为什么创建目录/文件夹的时候,权限是755
为什么文件的默认权限是644
0777
-0022
-0111
——————
0644 # 系统保护机制,会自动去除文件的所有执行权限,创建后需要自己加上x权限
(2)设置默认权限:
umask 0222 # 改变了默认权限
文件的一般权限为666,目录的一般权限为777。真实默认权限需要减掉umask