⑴setfacl是Linux下设置文件访问控制列表的命令,可用来创建文件,能够继承目录的权限,有些功能类似于chmod命令,下面小编就给大家介绍下Linux使用setfacl命令创建权限文件的方法,一起来学习下吧。
⑵下面以 root 用普通用户 user 。在目录/mnt下
⑶[rootRedHat- mnt]# setfacl -m u:user:rwx share //为目录添加ower = user ,并赋予rwx 的权根。
⑷[rootredhat- mnt]# setfacl -d -m u:user:rwx share //为目录添加默认的acl权限,此目录下创建目录和文件都会继承此权限信息
⑸[rootredhat- mnt]#
⑹[rootredhat- mnt]#
⑺[rootredhat- mnt]# getfacl share //查看share的facl信息
⑻# file: share
⑼# owner: root
⑽# group: root
⑾user::rwx
⑿user:user:rwx // 此时user才能对share有写权限
⒀group::r-x
⒁mask::rwx
⒂other::r-x
⒃default:user::rwx //默认子目录或文件的权限信息
⒄default:user:user:rwx
⒅default:group::r-x
⒆default:mask::rwx
⒇default:other::r-x
⒈[rootredhat- mnt]# cd share/
⒉[rootredhat- share]# ls
⒊[rootredhat- share]# touch roota
⒋[rootredhat- share]# touch rootb
⒌[rootredhat- share]# mkdir rootdir
⒍[rootredhat- share]# mkdir rootdir
⒎[rootredhat- share]# ls
⒏roota rootb rootdir rootdir
⒐[rootredhat- share]# getfacl roota
⒑# file: roota
⒒# owner: root
⒓# group: root
⒔user::rw-
⒕user:user:rwx #effective:rw-
⒖group::r-x #effective:r--
⒗mask::rw-
⒘other::r--
⒙[rootredhat- share]# getfacl rootdira
⒚getfacl: rootdira: No such file or directory
⒛[rootredhat- share]# getfacl rootdir
①rootdir/ rootdir/
②[rootredhat- share]# getfacl rootdir
③# file: rootdir
④# owner: root
⑤# group: root
⑥user::rwx
⑦user:user:rwx
⑧group::r-x
⑨mask::rwx
⑩other::r-x
Ⅰdefault:user::rwx
Ⅱdefault:user:user:rwx
Ⅲdefault:group::r-x
Ⅳdefault:mask::rwx
Ⅴdefault:other::r-x
Ⅵ[rootredhat- share]#
Ⅶ现在用user 进入此目录来检测权限:
Ⅷ[userredhat- share]$
Ⅸ[userredhat- share]$
Ⅹ[userredhat- share]$
㈠[userredhat- share]$ ll
㈡-rw-rw-r--+ root root Nov : roota
㈢-rw-rw-r--+ root root Nov : rootb
㈣drwxrwxr-x+ root root Nov : rootdir
㈤drwxrwxr-x+ root root Nov : rootdir
㈥[userredhat- share]$ touch usera
㈦[userredhat- share]$ touch userdir
㈧[userredhat- share]$ getfacl usera //查看新文件的权限
㈨# file: usera
㈩# owner: user
# group: user
user::rw-
user:user:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--
[userredhat- share]$ rm roota //尝试删除root创建的文件,成功
[userredhat- share]$ rm rootdir //尝试删除root创建的目录,成功
rm: cannot remove arootdira: Is a directory
[userredhat- share]$ rm rootdir -r
[userredhat- share]$ ll
-rw-rw-r--+ root root Nov : rootb
drwxrwxr-x+ root root Nov : rootdir
-rw-rw-r--+ user user Nov : usera
-rw-rw-r--+ user user Nov : userdir
[userredhat- share]$
所以,当有需求要做权根的继承操作时,可以使用这个方来实现。
在新的rhel 中, 会有新的工具chacl 类似于 setfacl 。
上面就是Linux使用setfacl命令创建权限文件的方法介绍了,因为创建的文件继承了父目录的权限,所以在某些时候使用比较方便,当然setfacl命令还有其他的用法。