如何在 Linux 上使用文件系统 ACL(访问控制列表)
访问控制列表为您提供了 Linux 文件系统权限的更大灵活性。
要点
- 要查看文件的所有 ACL 条目,请使用命令“getfacl filename”,但将“filename”替换为文件名。
- 要为文件设置新的 ACL 条目,请使用命令“setfacl -m u:username:rwx filename”
- 要在目录上设置默认 ACL 条目,请使用命令“setfacl -d -m u:username:rwx dirname”
您是否负责管理多组人员之间的共享文件服务器,这些人员都需要不同的访问权限?在本教程中,我们将介绍 ACL 的基础知识并在虚构的办公场景中使用它们。
- -m 表示我们正在修改文件的 ACL 条目
- u: 表示这是我们要添加的用户,后跟冒号 (:) 分隔符(g: 添加组,o:添加所有其他用户的权限)
- lumberg: 是我们要添加的用户名,后跟另一个冒号分隔符
- r 表示我们正在向该条目添加(仅)读取权限
- report.pdf 是我们要添加 ACL 条目的文件的名称
现在已经设置完毕,我们可以使用 getfacl 再次查看一下:
getfacl report.pdf
您发现我们的新条目了吗?
默认 ACL
默认 ACL 仅适用于目录(文件夹)。当您在目录上设置默认 ACL 时,您指定的条目将自动应用于其中的每个新文件和目录,无论是谁创建的。这是一种包罗万象的递归方法,在您规划文件系统层次结构时非常有用。
让我们确保 Lumberg 能够读取新文件并输入在 Accounting 下创建的新目录。我们将使用 -d 选项添加默认 ACL:
sudo setfacl -d -m u:lumberg:rX Accounting
一个大写 X 仅对新子目录应用执行权限;不是文件。
当您想要将文件系统权限提升到一个新的级别时,访问控制列表非常有用。您可以使用标准用户/组/其他权限来摆脱很多麻烦,但在您的旅程中可能会有一个点,使用 ACL 更有意义。