1,为何要使用acl权限
我们已知的文件管理者有三种:属主,属组,其他。当这三种不满足我们所需要的权限时,我们应该考虑使用一种新的权限,就是acl权限
例:一个文件123
属主:root 权限rwx
属组: root 权限rwx
其他:无权限
现在有一个用户user只能读和执行权限,没有修改权限,即user对文件123的权限为rx,我们不能把user加到属主或者属组里面,这时就可以使用acl权限。
2,查看acl权限
用法:getfacl 文件名
此时文件123无acl权限,并且属主和属组都是root,文件权限为770。
当权限位后面有+号时,表示拥有了acl权限。
3,设定acl权限
用法:setfacl 选项 文件名
常用选项:-m 设定acl权限
-x 删除指定的acl权限
-b 删除所有的acl权限
-R 递归设定acl权限
例:给user用户设定rx权限
-m 表示设置acl权限,u表示给用户设置,user表示这个用户是user,rx表示赋予的是读执行权限,123是文件名。
设定完成以后查看,会发现在用户下多了一个用户user有读执行权限。
例:给user组设定rx权限
当把u换成g时,表示给用户组user设定权限。
例:给文件123设置最大权限(root除外)
当不给用户和用户组设定权限时,换成m,就表示修改对文件的最大权限,设置完以后表示,只有root用户拥有rwx权限,其他用户虽然设置了rx权限,但后面注明了最大权限只有r。
例:给user用户设定对bak目录的读执行权限,并让其目录下的文件或目录继承其权限。
此时bak目录没有acl权限
设定以后其目录下的文件就有了acl权限。
注:此方法只会给目录下原有的文件添加acl权限,而不会给新建的文件添加acl权限。
如果想新建的文件或者目录继承其acl权限,需要使用默认acl权限。
我们发现,原来的文件file1.txt没有acl权限,而新建的文件file2.txt有了acl权限。
总结:acl权限是当只有属主,属组,其他人都不能满足权限时需要用到的权限,它可以给普通用户赋予对某个文件或目录特殊的权限。
getfacl 文件名 查看acl权限
setfacl -m u:用户名:权限 文件名/目录 给用户赋予acl权限
setfacl -m g:组名:权限 文件名/目录 给组赋予acl权限
setfacl -m m:权限 文件名/目录 给文件赋予最大权限(root除外)
setfacl -m u:用户名:权限 -R 目录 给目录递归赋予acl权限(目录下新建的没有权限)
setfacl -m d:u:用户名:权限 目录 给目录下新建的文件或目录赋予acl权限 (已有的文件或者目录没有acl权限)