跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SUSE Linux Enterprise High Availability 文档 / 管理指南 / 附录 / 在没有 root 访问权限的情况下运行群集报告
适用范围 SUSE Linux Enterprise High Availability 15 SP6

D 在没有 root 访问权限的情况下运行群集报告

所有群集节点都必须能通过 SSH 相互访问。crm report(用于查错)等工具和 Hawk2 的历史记录浏览器要求节点之间通过无口令 SSH 方式来访问,否则它们只能从当前节点收集数据。

如果您的安全策略不允许进行无口令 root SSH 登录,则在所有远程节点上以 root 身份运行 crm report 时都会失败。在这种情况下,您仍可以采用以下其中一种方式运行群集报告:

  • 如果群集是由具有 sudo 特权的非 root 用户初始化的,则此用户可以运行群集报告。

  • 如果群集是由 root 用户初始化的,您可以创建专用的非 root 用户来运行群集报告。

以下过程说明如何为非 root 用户授予受限权限,让该用户可以使用 sudo 来运行 crm report,但没有其他 sudo 访问权限。

D.1 为非 root 用户配置受限的 sudo 权限

sudo 命令可让普通用户快速变成 root 并发出命令,而无论其是否提供了口令。可向所有 root 级命令或者特定的命令授予 sudo 访问权限。此过程说明如何仅为运行群集报告所需的特定命令配置 sudo 权限。Sudo 通常使用别名来定义整个命令字符串。

要配置 sudo,请使用 visudo不是 vi)或 YaST。

警告
警告:不要使用 vi

要从命令行配置 sudo,必须以 root 身份使用 visudo 编辑 sudoers 文件。使用任何其他编辑器可能会导致语法或文件权限错误,进而阻止 sudo 运行。

要求
  • 没有 sudo 权限的非 root 用户。以下过程使用名为 hareport 的示例用户。

  • 群集中的所有节点上都存在用户 hareport

  • 用户 hareport 可以通过无口令 SSH 访问群集中的所有其他节点。

过程 D.1︰ 为非 root 用户配置受限的 sudo 权限
  1. root 身份登录。

  2. 要打开 /etc/sudoers 文件,请输入 visudo

  3. 查找以下类别:Host alias specificationUser alias specificationCmnd alias specificationRunas alias specification

  4. /etc/sudoers 中的相应类别中添加以下几项:

    Host_Alias	CLUSTER = alice,bob,charlie 1
    User_Alias HA = hareport 2
    Cmnd_Alias HA_ALLOWED = /bin/su, /usr/sbin/crm report*3
    Runas_Alias R = root 4

    1

    主机别名定义 sudo 用户有权在哪个服务器(或特定范围内的服务器)上发出命令。在主机别名中,可以使用 DNS 名称或 IP 地址,或者指定整个网络范围(例如 172.17.12.0/24)。要限制访问范围,应该仅指定群集节点的主机名。

    2

    使用用户别名可将多个本地用户帐户添加到单个别名。不过,在此情况下,系统只会使用一个帐户。

    3

    命令别名定义该用户可执行的命令。如果您要限制非 root 用户在使用 sudo 时可以访问的数据,命令别名将十分有用。在此情况下,hareport 用户帐户需要访问命令 crm reportsu

    4

    runas 别名指定用于运行命令的帐户(在本例中为 root)。

  5. 搜索以下两行:

    Defaults targetpw
    ALL     ALL=(ALL) ALL

    由于这两行与我们要创建的设置相冲突,因此请将其禁用:

    #Defaults targetpw
    #ALL     ALL=(ALL) ALL
  6. 查找 User privilege specification 类别。定义上述别名后,现在可以添加以下规则:

    HA	CLUSTER = (R) NOPASSWD:HA_ALLOWED

    NOPASSWORD 选项确保用户 hareport 无需提供口令就能执行群集报告。

  7. (可选) 如果要允许用户 hareport 使用您的本地 SSH 密钥运行群集报告,请在 Defaults specification 类别中添加下行内容。这会保留 SSH_AUTH_SOCK 环境变量,SSH 代理转发时需要用到该变量。

    Defaults!HA_ALLOWED env_keep+=SSH_AUTH_SOCK

    hareport 用户身份通过 ssh -A 登录节点以及使用 sudo 运行 crm report 时,您的本地 SSH 密钥会传递到该节点以进行身份验证。

重要
重要:需要在每个群集节点上使用相同的 sudo 配置

必须在群集中的所有节点上指定这项 sudo 配置。无需为 sudo 做出其他更改,并且无需重启动任何服务。