Attr 权限 和 ACL 访问控制列表
- Attr 权限里的 “a” 权限和 “i” 权限
a :全名append only
只允许追加数据,不允许任何用户改动文件(超级用户也不行)
甚至不能正常的删除文件
只能读取文件内容,只能用 “echo” 追加内容
chattr +a xxx #增加 a 权限
chattr -a xxx #取消 a 权限
lsattr #查看权限
[[email protected] /test]# touch abc #自行创建一个 abc 文件
[[email protected] /test]# chattr +a abc/ #给 abc 加上 “a” 权限
[[email protected] /test]# lsattr #查看 “a” 权限
-----a---------- ./abc
[[email protected] /test]# echo "hello" >> abc #可用“echo”把内容追加到 abc 文件中
[[email protected] /test]# vim abc #编辑文件
abc保存退出的时候会发现无法保存,只能退出不做修改;表示 “a” 权限只能对文件的追加而不能进行修改
i :全名immutable
不允许对这个文件进行任何的修改(超级用户也不行)
不能正常的删除文件
只能读取文件内容,不能用 “echo” 追加内容
chattr +i xxx #增加 i 权限
chattr -i xxx #取消 i 权限
lsattr #查看权限
[[email protected] /test]# chattr +i abc #给 abc 加上 “i” 权限
[[email protected] /test]# lsattr #查看 “i” 权限
----i----------- ./abc
[[email protected] /test]# echo "hello" >> abc #用“echo”把内容追加到 abc 文件中
-bash: abc: 权限不够
权限不够,表示 “i” 权限的特性就是不允许做任何的修改删除,只能读取
- ACL:访问控制列表
使用语法: setfacl -[选项] [权限设置] 操作对象
查看语法: getfacl 加路径
-m 设置一个ACL权限
-x 取消一个ACL权限
-b 清除所有的 ACL 权限
举个栗子:允许用户 rosen1 对 “/test/abc” 文件有读和写的权限;用户 rosen2 对 “/test/abc” 文件没有任何权限,其他人只有读的权限(用户自行创建)
[[email protected] /test]# setfacl -m u:rosen1:rw- /test/abc # rosen1 读和写权限
[[email protected] /test]# setfacl -m u:rosen2:--- /test/abc # rosen2 没有任何权限
[[email protected] /test]# chown zhang3 abc #修改所有者为zhang3
[[email protected] /]# getfacl /test/abc
# file: test/abc #文件所在的路径
# owner: zhang3 #文件附加所有者
# group: root #文件所属组
user::rw- #用户权限
user:rosen1:rw- # rosen1 读和写权限
user:rosen2:--- # rosen2 没有任何权限
group::r-- #用户所属组权限
mask::rw- #除了 root 集体控制附加所有者的最大权限
other::r-- #其他人只读权限
mask 值作用:除了 “root 用户” 权限之外,其他的 ACL 用户和组(包括默认组),都会被mask 作用到
修改 “mask” 值: setfacl -m m:rwx /test/abc
原文地址:http://blog.51cto.com/13481789/2335252
时间: 2024-10-23 01:02:25