Ubuntu 中的访问控制列表 |
您所在的位置:网站首页 › 文件访问控制列表 › Ubuntu 中的访问控制列表 |
Ubuntu 中的访问控制列表
用户帐户是使用一组预定义的系统文件和服务权限来创建的。另一方面,组的存在是为了在用户之间共享文件和文件夹。通常,创建用户帐户后,可以将它们分配给备用组。但是,有时您可能不想将特定用户分配给特定组,但同时您可能需要与该特定用户共享文件/文件夹。这就是访问控制列表 (ACL) 发挥作用的地方。在本教程中,我们将了解 Ubuntu 中的访问控制列表。 访问控制列表 (ACL)访问控制列表 (ACL) 允许我们微调访问控制。换句话说,假设用户 SARA 需要访问 KALYANI 拥有的单个文件夹。从技术上讲,我们可以将 SARA 分配给 KALYANI 的组,但这意味着 SARA 可以访问超出她需要的内容,并进一步假设 KALYANI 拥有她不希望 SARA 读取、写入或执行的敏感文件。这就是访问控制列表或 ACL 发挥作用的地方。理论上,我们可以扰乱权限,但 ACL 允许我们向不同的用户提供不同的访问权限,并且无需扰乱文件或文件夹的实际基本权限即可授予访问权限。 查看当前权限我们使用getfacl(获取文件访问控制列表)命令来查看当前的ACL权限。 getfacl file/folder假设我创建了一个名为 Secret 的文件夹,其中包含两个子目录和 5 个文件。进一步假设我想查看秘密文件夹的ACL权限。 getfacl secret这意味着文件和文件夹的所有者 kalyani(属于 kalyani 组)具有读取、写入和执行权限。然而,其他人却没有任何许可。 分配用户微调权限使用 ACL 微调权限是使用 setfacl 命令进行的。 -m 开关尤其用于修改权限。 setfacl -m u:username:permissions filenameu 表示更改是针对用户而不是组。在冒号后面,写下被授予权限的用户名以及授予的权限。这些权限与 chmod 可用的权限相同:读、写和执行。最后,我们写入应用权限的文件名。 例如,假设我希望向用户 SARA 授予她对此秘密文件夹的完全访问权限,那么我会写: setfacl -m u:sara:rwx secret现在,如果我们以 SARA 身份登录,我们将对文件夹“secret”进行读、写和执行访问。现在,请注意,我为初始目录设置了 770 权限。保留了此权限,但使用访问控制列表添加了规则的例外。如果我有另一个名为“kali”的文件夹,其权限为 kalyani 所拥有的 770,那么用户 SARA 将无法触及它。事实上,它会说“权限被拒绝”。 此外,需要注意的一点是,一旦文件被修改为 ACL,列出它时旁边会有一个加号。在这种情况下,正如您所看到的,它显示 drwxrwx-+ 表示名为“secret”的文件夹。加号表示它已使用 ACL 进行了修改。 设置 ACL 后,还会创建一个掩码。掩码是 ACL 用户或组对目录或文件可能拥有的最大权限。 分配组微调权限就像分配用户特殊权限一样,我们也可以分配组特殊权限。这意味着我们可以保持基本权限不变,并使用 ACL 为特定组分配附加权限。 setfacl -m g:group_name:permissions filename例如: setfacl -m g:john:r secret在本例中,我们授予组 JOHN 对秘密文件夹的读取权限。这意味着 JOHN 组的所有成员都将具有秘密文件夹的读取权限,并且仅具有秘密文件夹的读取权限。其他一切都将处于锁定状态。 递归赋值秘密文件夹设计为直接包含 3 个文件和 2 个子目录,每个子目录包含一个文件。 当我们为用户SARA和组JOHN分配权限时,我们并没有递归地进行操作,因此我们检查当前子目录的ACL权限(在为秘密目录分配权限之后)。 如您所见,ACL 权限仅应用于秘密目录,而不应用于子目录。这意味着用户 SARA 和组 JOHN 对子目录没有给定的权限!这种情况下,如果我们想给整个目录(包括子目录)赋予权限,就必须进行递归赋值。我们使用 -R 开关来执行此操作。 setfacl -R -m u:username:permissions filename例如: setfacl -R -m u:sara:rwX secret删除微调权限您可能还希望撤销授予的权限,这与授予权限一样容易。您可以使用 -x 开关而不是 -m 开关来撤销权限。 要删除特定条目: setfacl -x u:username filename setfacl -x g:group_name filename在这种情况下,我会写: setfacl -x u:sara secretsetfacl -x g:john secret要一次性删除所有条目: setfacl -b filename例如: setfacl -b secret但是,这并不会删除子目录的权限。为了删除子目录的权限,必须使用递归。 setfacl -R -b secret概括我们学到的一切都可以归结为: 查看ACL权限: getfacl filename设置ACL权限: setfacl filename选项:-m、--modify 修改 ACL-x、--remove 删除 ACL 条目-b、--remove-all 删除所有 ACL 条目-R 递归赋值 Entry:u:用户名:用户的权限g:group_name:组的权限 尽管 chmod 的存在是为了授予文件和文件夹权限,但它不是选择性的。它不能向不同的用户授予不同的权限。此外,有时人们也不想将随机的人添加到组中。 ACL 或访问控制列表就是为了这种场合而发明的。它可以授予特定用户或组对特定文件和/或文件夹的访问权限。在本教程中,我们学习了如何授予用户和组特殊权限、递归分配权限以及撤销所述权限。因此,从现在开始,微调文件和文件夹的权限! 快乐编码! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |