02-linux文件权限
@
目录
1. 更改属组
- 更改主、组
语法:chown [用户名].[组名] 文件名
- 更改组
语法:chgrp 组名 文件名
2. 更改读写权限
- 语法
方法一:chmod [a|u|g|o] [+|-|=] [r|w|x|-] 文件名
方法二:chmod 0755 文件名
3. 特殊权限
3.1 suid(4000)
- 作用:执行该文件是root附体 (对文件有效)
- 语法:
chmod u[+|-]s 文件名
3.2 sgid(2000)
- 作用:继承文件所属组 (对文件有效)
- 语法:
chmod g[+|-]s 文件名
3.3 sticky(1000)
- 作用:仅所有者可以删改目录下文件(对目录有效)
- 语法:
chmod o[+|-]t 文件名
4. ACL权限
- 作用:
linux 的某个目录只能有user、group、other 三种权限。
如果另一个用户,即不是user,也不在group,却要取得比other更多的权限怎么办?
使用ACL权限单独添加
4.1 查看
getfacl 文件名
4.2 修改
setfacl -m [d:]u|g:用户名:[rwx] 文件名
说明:d表示递归,且以后加入的文件都以此为例。
4.3 删除权限
-
删除某用户acl权限
setfacl -x u:用户名 文件名
-
删除所有用户acl权限
setfacl -b 文件名
-
示例
给刘备/tmp/hello目录 读写执行的权限
# setfacl -m d:u:liubei:rwx /tmp/hello
设置ACL权限后,所有组的位置变为mask权限,显示如下:
drwxrwxr-x+ 3 root root 4096 5月 27 04:13 hello
5. Attr权限
即,文件属性权限(包括对root生效)
5.1 查看
lsattr 文件1 文件2
5.2 修改
chattr +|-参数 文件名
参数:
a
,只能增加不能删改
i
,只读
A
, 最后访问时间不变
5.3 示例
清理系统messages日志
- 查看message文件
可见,该日志有attr权限,智能曾不能减
# lsattr /var/log/messages
-----a-------e-- /var/log/messages
- 测试
直接
echo ""
进去, 可发现虽然没有报错,但是大小并没有减少。因此我们需要先去掉attr的a权限,清空之后再加回来
- 清理messages日志
# chattr -a /var/log/messages
# echo "" > /var/log/messages
# chattr +a /var/log/messages