搜索

14.5. 为用户配置访问控制

download PDF
授权 是检查用户是否允许执行操作的机制。授权点在需要授权检查的某些组操作中定义。

14.5.1. 关于访问控制

访问控制列表 (ACL)是指定对服务器操作的授权的机制。每个操作集合存在 ACL,其中进行授权检查。可将其他操作添加到 ACL。
ACL 包含 访问控制指令 (ACI),它们专门允许或拒绝操作,如读或修改。ACI 还包含 evaluator 表达式。ACL 的默认实施仅以可能的 evaluator 类型指定用户、组和 IP 地址。ACL 中的每个 ACI 指定是否允许或拒绝访问、允许或拒绝特定 Operator,以及哪些用户、组或 IP 地址是被允许还是拒绝执行该操作。
CertificateCertificate Systemnbsp 的特权;通过更改与用户所属组的访问控制列表(ACL)更改系统用户,或者用于用户的 IP 地址。通过在访问控制列表中添加该组,为新组分配访问控制。例如,对于仅有权查看日志的管理员的新组,LogAdmins 则可添加到与日志相关的 ACL 中,以允许读取或修改对此组的访问权限。如果这个组没有添加到任何其他 ACL 中,则此组成员只能访问日志。
通过编辑 ACL 中的 ACI 条目来更改用户、组或 IP 地址的访问权限。在 ACL 界面中,每个 ACI 都会显示在其自己的行中。在这个接口窗口中,ACI 具有以下语法:
allow|deny (operation) user|group|IP="name"
注意
IP 地址可以是 IPv4 或 IPv6 地址。IPv4 地址的格式必须为 n.n.n 或 n .n.n,m.m.m。例如:128 .21.39.40128.21.39.40,255.255.255.00。IPv6 地址使用 128 位命名空间,使用以冒号分隔的 IPv6 地址以及句点分隔的子网掩码。例如: 0:0:0:0:0:0:13.1.68.3,FF01::43,0:0:0:0:0:0:13.1.68.3,FFFF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF: FF:FF:FF:FF: FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF: FF
例如,以下是 ACI,允许管理员执行读取操作:
allow (read) group="Administrators"
ACI 可以配置多个操作或操作。操作以逗号分开,其中两侧没有空格。例如:
allow (read,modify) group="Administrators"
ACI 可以有多个组、用户或 IP 地址,方法是将它们分隔为两个管道符号(||),并在两侧面上有一个空格。例如:
allow (read) group="Administrators" || group="Auditors"
管理控制台可以创建或修改 ACI。接口设置是否允许或拒绝 Allow 和 Deny 字段中的操作,设置 Operations 字段中可以执行的操作,然后在 syntax 字段中列出组、用户或 IP 地址被授权或拒绝访问。
ACI 可以允许或拒绝指定组、用户 ID 或 IP 地址的操作。通常,不需要创建 ACI 来拒绝访问。如果没有允许 ACI 包含用户 ID、组或 IP 地址,则拒绝组、用户 ID 或 IP 地址。
注意
如果用户没有明确允许访问资源的任何操作,则此用户将被认为拒绝;他不需要拒绝访问。
例如,用户 JohnB 是 Administrators 组的成员。如果 ACL 仅具有以下 ACL,JohnB 会拒绝任何访问,因为与任何允许 ACI 不匹配:
Allow (read,modify) group="Auditors" || user="BrianC"
通常不需要包含 deny 语句。然而,在有些情况下,对于指定情况非常有用。例如,JohnB管理员 组的成员)刚刚触发。如果用户无法立即删除,可能需要拒绝对 JohnB 的访问。另一个情况是,用户 BrianC 是管理员,但他不应该更改某些资源。由于 Administrators 组必须访问此资源,因此通过创建一个拒绝这个用户访问的 ACI,可以明确拒绝 BrianC 的访问。
允许的权限是 ACI 控制的操作,可以通过允许或拒绝权限来执行操作。为 ACL 设置的操作因 ACL 和子系统而异。可以定义的两个常见操作是读取和修改。
ACI 编辑器的 syntax 字段为表达式设置 evaluator。evaluator 可以指定组、名称和 IP 地址(IPv4 和 IPv6 地址)。它们按照等于(=)或不等号(!=)设置的名称指定。
在 ACL 中包括组的语法是 group="groupname"。排除组的语法为 group!="groupname",它允许除名为 的组外的任何组。例如:
group="Administrators" || group!="Auditors"
也可以使用正则表达式来指定组,例如使用星号(*)等通配符字符。例如:
group="* Managers"
有关支持的正则表达式模式的更多信息,请参阅 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
在 ACL 中包含用户的语法是 用户="userID"。要排除用户的语法为 user!="userID",它允许除名为 的用户 ID 外的任何用户 ID 除外。例如:
user="BobC" || user!="JaneK"
要指定所有用户,请提供该人 的值。例如:
user="anybody"
也可以使用正则表达式来指定用户名,如使用通配符字符,如星号(*)。例如:
user="*johnson"
有关支持的正则表达式模式的更多信息,请参阅 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
在 ACL 中包含 IP 地址的语法为 ipaddress="ipaddress"。从 ACL 中排除 ID 地址的语法为 ipaddress!="ipaddress"。IP 地址使用数字值指定;不允许使用 DNS 值。例如:
ipaddress="12.33.45.99"
ipaddress!="23.99.09.88"
IP 地址可以是 IPv4 地址,如上所示,也可以是 IPv6 地址。IPv4 地址的格式为 n.n.n.nn.n.n.n,m.m.m (子网掩码)。IPv6 地址使用 128 位命名空间,使用以冒号分隔的 IPv6 地址以及句点分隔的子网掩码。例如:
ipaddress="0:0:0:0:0:0:13.1.68.3"
也可以使用正则表达式来指定 IP 地址,如使用星号(*)等通配符字符。例如:
ipaddress="12.33.45.*"
有关支持的正则表达式模式的更多信息,请参阅 https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
通过将每个值分开两个管道字符(||),创建一个带有多个值的字符串。例如:
user="BobC" || group="Auditors" || group="Administrators"
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.