linux修改权限的方法(简单掌握Linux中用于更改访问控制的chacl命令)
chacl是用来更改文件或目录的访问控制列表的命令 。其和chmod有异曲同工之妙 。但是比chmod更为强大 ,更为精细 。
chmod只能把权限分为三种:用户 ,组 ,其它人 。通过chmod你可以指定文件属主的权限 ,文件所在组的用户的权限 ,其它人的权限 。
如果有这样的需求 ,通过chmod能搞定吗??如果A用户的文件只想给B看 。通过chmod能不能搞定 。当然你可能讲把A ,B放到一个组里面就可以了 。但是你这样就会限制了别的用户不能加入这个组 。通过chacl可以轻松的搞定这个问题 。
chacl命令的格式是: chacl acl filename1 filename2
acl的英文是 the access control list ,我就直译为存取控制列表吧 。chacl就是一个改变文件存取控制列表的一个命令 。
acl是一个可以被acl_from_text程序分析出各用户权限的字符串。该字符串用逗号分隔成多个片段
每个片段的形式都如:tag:name:perm
tag可以是下面形式的一种:
"user" (or "u")
表示这是一个用户的ACL条目 。
"group" (or "g")
表示这是一个用户组的ACL条目 。
"other" (or "o")
表示这是其它的ACL条目。即没有在ACL指定的用户和组的ACL条目 。
"mask" (or "m")
表示这是一个掩码的ACL条目 。在指定其它非用户属主的ACL权限时 ,这个掩码条目必须被指定 ,否则执行chacl命令会出错 。name可以是用户名或组名 。如果不指定 ,那么默认是给文件或目录的属主或用户组指定acl权限 。当然name也可以是用户的uid或者组的gid 。
perm是指该用户或组所具有的权限 ,它是由"rwx"组成的一个字符串,什么意思当然大家都明白了 。如果要使该用户或组不具有某种权限 ,简单的以"-"代替指定的字母就可以了 。例如"r-x"是只具有读 ,执行权限 。
该命令具有的选项不多,就具体的介绍下每个选项的含义吧 。
-b 表明这里有两个acl需要修改 ,前一个acl是文件的acl ,后一个是目录的默认acl 。
-d 设定目录的默认acl ,这个选项是比较有用的 。如果指定了目录的默认acl ,在这个目录下新建的文件或目录都会继承目录的acl。
-R 只删除文件的acl
-D 只删除目录的默认acl ,是-d的反向操作 。
-B 删除文件和目录默认的acl 。是-b的反向操作。
-r 递归地修改文件和目录的acl权限 。
-l 列出文件和目录的acl权限 。例:
[root@localhost ~]# chacl u::r-x,g::r-x,o::---,u:tank:rwx,m::--- test
[root@localhost ~]# getfacl test #查看文件的acl权限
# file: test
# owner: root
# group: root
user::r-x
user:tank:rwx #effective:---
group::r-x #effective:---
mask::---
other::---创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!