2024年11月Linux如何使用setfacl命令创建权限文件

发布时间:

  ⑴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命令还有其他的用法。