跳到主要内容

配置多个Linux Shell用户

除了内置的 root 用户和默认支持用户账户外,您可以创建额外的系统管理员,他们具有类似 root 用户的权限,以及额外的支持账户。这些额外的账户为设备操作引入了更多的灵活性,并允许实施类似以下的操作协议:

  • 紧急系统管理员账户和密码可以存放在一个安全的地方,以防操作 root 密码丢失。例如,这允许在受信任的员工离开您的组织,或者密码管理系统出现故障导致账户无法访问时进行恢复.
  • 可以实施公司安全策略,禁止共享用户名,并要求每个系统管理员都有一个独特的用户名.
  • 可以为某些用户提供对 Linux 工具子集的访问权限,以便他们可以查看设备日志文件,但不能删除或修改他们不应该访问的文件.

Linux shell 用户账户分为三组(除了标准的 root 和默认支持用户),您可以创建和配置:

  • 系统管理员:这些是类似 root 的用户,可以使用 sudo 在设备的 shell 中运行所有命令,而无需输入 root 密码。换句话说,这些文档中指出您需要 root 访问权限或作为 root 用户执行的任何设备配置程序也可以由系统管理员用户执行.

  • 支持:这些可创建的支持用户具有与默认支持用户相同的权限。他们被允许执行有限的设备 shell 命令和脚本集.

  • 受限:这些用户具有对设备日志的读取访问权限,对其主目录中的文件具有读写访问权限,并且只要文件的所有者允许,就可以对其他用户拥有的文件具有读取访问权限。他们可以执行不需要 root 访问权限的 shell 命令.

虽然没有限制您可以创建的新用户账户数量,但 Solace 支持最多两个系统管理员组用户和在支持或受限组中总共 100 个用户的组合.

下表列出了每个 shell 用户组的特性。它展示了权限、关联主目录配额的限制以及允许的 shell 命令.

Linux Shell 用户组属性

Shell 用户组权限主目录大小配额允许的 Shell 命令
系统管理员与 root 用户相同的权限.受磁盘大小限制所有命令都可以使用 sudo 而无需输入 root 密码
支持与默认支持用户相同的权限.
允许执行 Allowable Shell Commands 列中显示的所有主机命令和 /usr/sw/loads/currentload/supported 目录中的脚本.建议:每个支持用户 100 MB```

fdisk

还有一些适用于所有 shell 用户的一般特性:

  • 所有 shell 用户都可以更改自己的密码.
  • 所有 shell 用户在系统升级时仍然存在.
  • 所有 shell 用户都包括在数据库备份和恢复中;然而,他们的关联主目录不会被备份或恢复.
  • 当运行 reload default-config 命令时,所有 shell 用户及其关联的主目录将被删除(注意,内置的 root 和默认支持用户账户不受影响).
  • 所有 shell 用户都可以单独分配磁盘配额.

本页描述的 shell 用户仅适用于设备.

您可以在主机上为软件事件代理创建用户和组。然而,由于主机操作系统不受 Solace 管理,这些用户和组可能会在升级期间被删除.

创建Linux Shell用户

在本节中,我们将向您展示如何创建系统管理员、支持和受限用户账户.

作为 root 或系统管理员用户,请在设备的 Linux shell 中执行以下步骤,以创建和配置新 shell 用户:

  1. 通过执行 luseradd 命令并设置 USER_TYPEsysadminsupportrestricted(取决于您要创建的组成员)来创建新用户.
$ sudo luseradd -g <USER_TYPE> <username>
  1. 使用 passwd 命令配置初始密码。您将被提示输入 <username> 的密码.
$ sudo passwd <username>
  1. 推荐的安全实践是通过将密码过期信息设置为立即来强制用户在首次登录时更改密码。这可以通过 chage -d 0 命令完成.
$ sudo chage -d 0 <username>
  1. 如果您正在配置 supportrestricted shell 用户,请设置用户的磁盘配额。在此示例中,已设置推荐的 100 MB。您不需要为 sysadmin 用户设置配额,因为他们的配额仅受系统磁盘大小的限制.
$ sudo setquota -u <username> 100000 100000 50000 50000 /usr/sw

将SSH密钥添加到用户账户

您可以通过在用户账户上安装 ssh 密钥来提供额外的安全层。以下步骤将向您展示如何操作.

  1. 在将用于连接到设备的客户端机器上创建公钥/私钥对。可以使用密码短语,但请注意,每次使用密钥时都必须输入密码短语.
$ ssh-keygen -t rsa
  1. 登录到设备并在新用户的主目录中创建一个隐藏的 ssh 目录.
$ mkdir /usr/sw/home/<username>/.ssh
  1. 将文件 id_rsa.pub 发送到设备。在此示例中,将使用 scp.
$ scp id_rsa.pub <destination>
  1. 将公钥安装到 authorized_keys 列表中.
$ cat id_rsa.pub >> /usr/sw/home/<username>/.ssh/authorized_keys
  1. 为了进一步提高安全性,在配置了 ssh 密钥登录后,禁用新用户账户的密码认证.

一旦禁用了密码认证,唯一可以登录的方式是使用 ssh 密钥,并且无法通过 Solace CLI 使用 CLI 命令 shell 登录到此用户账户的 Linux shell。因此,请确保至少有一个系统管理员用户可以直接登录而不需要 ssh 密钥,以防 Solace PubSub+ 出现故障.

执行以下命令以禁用密码认证:

$ sudo passwd -l <username>

创建增强安全的系统管理员用户

为了增强安全性,可以配置系统管理员用户,使他们必须使用两步登录过程:

  • 首先,他们作为支持用户登录,然后
  • 他们可以登录到他们的系统管理员账户.

要配置需要此两步登录过程的新系统管理员用户,请作为 root 或系统管理员用户在设备的 Linux shell 中执行以下步骤.

  1. 通过执行 luseradd 命令创建新系统管理员用户.
$ sudo luseradd -g sysadmin <username>
  1. 通过执行带有 support 参数的 luseradd 命令创建新支持用户.
$ sudo luseradd -g support <username>_support
  1. 为系统管理员和支持账户配置初始密码。您将被提示输入 <username><username>_support 的密码.
$ sudo passwd <username>
$ sudo passwd <username>_support
  1. 通过将密码过期信息设置为立即来强制用户在首次登录时更改密码.
$ sudo chage -d 0 <username>
$ sudo chage -d 0 <username>_support
  1. 为支持用户分配磁盘配额。在此示例中,100 MB 是期望的值.
$ sudo setquota -u <username>_support 100000 100000 50000 50000 /usr/sw
  1. 禁用系统管理员账户的直接 shell 登录.
$ sudo chsh -s /sbin/solace-nologin <username>
  1. 要登录到新创建的系统管理员账户,请首先登录到您刚刚创建的关联支持用户账户,然后运行以下命令:
$ su -s /bin/bash <username>

将 SSH 密钥添加到支持用户的账户

执行以下步骤,通过在支持账户上安装 ssh 密钥来提供额外的安全层.

  1. 在将用于连接到设备的客户端机器上创建公钥/私钥对。可以使用密码短语,但请注意,每次使用密钥时都必须输入密码短语.
$ ssh-keygen -t rsa
  1. 登录到设备并在新支持用户的主目录中创建一个隐藏的 ssh 目录.
$ mkdir /usr/sw/home/<username>_support/.ssh
  1. 将文件 id_rsa.pub 发送到设备.

    在此示例中,我们将使用 scp

    $ scp id_rsa.pub <destination>
  2. 将公钥安装到支持用户的 authorized_keys 列表中.

$ cat id_rsa.pub >> /usr/sw/home/<username>_support/.ssh/authorized_keys
  1. 一旦设置了 ssh 密钥登录,如果需要额外的安全性,您可以选择禁用新支持用户账户的密码认证.

一旦禁用了密码认证,唯一可以登录的方式是使用 ssh 密钥,并且无法通过 Solace CLI 使用 CLI 命令 shell 登录到此用户账户的 Linux shell。因此,您应该确保至少有一个系统管理员用户可以直接登录而不需要 ssh 密钥,以防 Solace PubSub+ 出现故障.

执行以下命令以禁用密码认证:

$ sudo passwd -l <username>_support

管理Linux Shell用户账户

作为 root 或系统管理员用户,您可以更改用户的密码、删除用户以及更改他们的磁盘空间配额.

更改用户密码

要更改用户的密码,请使用 passwd 命令:

$ sudo passwd <username>

更改用户磁盘空间配额

要更改用户分配的磁盘配额,请使用 setquota 命令:

$ sudo setquota -u <username> <软限制(KB)> <硬限制(KB)> 50000 50000 /usr/sw

删除用户

要删除用户及其关联的主目录,请使用 luserdel 命令:

$ sudo luserdel -rG <username>

注意:Solace CLI 命令 reload default-config 将删除您创建的所有 shell 用户(除了内置的 root 和支持用户),并将所有其他内容恢复到设备的默认配置.

通过Solace CLI访问Linux Shell

只要密码认证未被禁用,shell 用户可以通过 Solace CLI 访问设备的 Linux shell.

要通过 Solace CLI 访问 Linux shell,请执行以下步骤:

  1. 在 Solace CLI 中,输入以下命令:
solace# shell <reason>

其中:

  • reason 是一个简短的短语,解释您访问 Solace PubSub+ shell 账户的原因。例如:
solace# shell Troubleshooting_in_Linux_shell
  1. 当提示时,输入您的 Linux shell 用户名.
login as: <username>
  1. 当提示时,输入您的密码.

示例:

Password: myPWD

一旦连接,您将看到类似以下内容的提示:

[username@solace24]$