3.9. 使用 sudo 和 sysadm_r 角色约束管理员


您可以将具有管理权限的特定用户映射到 staff_u SELinux 用户,并配置 sudo,以便用户获取 sysadm_r SELinux 管理员角色。这个角色允许用户在不拒绝 SELinux 的情况下执行管理任务。当用户登录时,会话运行在 staff_u:staff_r:staff_r:staff_t SELinux 上下文中,但当用户使用 sudo 输入命令时,会话会更改为 staff_u:sysadm_r:sysadm_t 上下文。

默认情况下,Red Hat Enterprise Linux 中的所有 Linux 用户(包括管理权限的用户)都会映射到无限制的 SELinux 用户 unconfined_u。您可以通过将用户分配给受 SELinux 限制的用户来提高系统安全性。这对遵守 V-71971 安全技术实施指南非常有用。

先决条件

  • root 用户运行没有限制。这是 Red Hat Enterprise Linux 的默认设置。

步骤

  1. 将新用户或现有用户映射到 staff_u SELinux 用户:

    1. 要映射新用户,请将新用户添到 wheel 用户组,并将用户映射到 staff_u SELinux 用户:

      # adduser -G wheel -Z staff_u <example_user>
      Copy to Clipboard Toggle word wrap
    2. 要映射现有用户,请将用户添加到 wheel 用户组,并将用户映射到 staff_u SELinux 用户:

      # usermod -G wheel -Z staff_u <example_user>
      Copy to Clipboard Toggle word wrap
  2. 恢复用户主目录的上下文:

    # restorecon -R -F -v /home/<example_user>
    Copy to Clipboard Toggle word wrap
  3. 要允许 <example_user> 获得 SELinux 管理员角色,请在 /etc/sudoers.d/ 目录中创建一个新文件,例如:

    # visudo -f /etc/sudoers.d/<example_user>
    Copy to Clipboard Toggle word wrap
  4. 在新文件中添加以下行:

    <example_user> ALL=(ALL) TYPE=sysadm_t ROLE=sysadm_r ALL
    Copy to Clipboard Toggle word wrap

验证

  1. 检查 <example_user> 是否已映射到 staff_u SELinux 用户:

    # semanage login -l | grep <example_user>
    <example_user>     staff_u    s0-s0:c0.c1023   *
    Copy to Clipboard Toggle word wrap
  2. <example_user> 身份登录,例如使用 SSH,并切换到 root 用户:

    [<example_user>@localhost ~]$ sudo -i
    [sudo] password for <example_user>:
    Copy to Clipboard Toggle word wrap
  3. 显示 root 安全上下文:

    # id -Z
    staff_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
    Copy to Clipboard Toggle word wrap
  4. 尝试管理任务,例如重启 sshd 服务:

    # systemctl restart sshd
    Copy to Clipboard Toggle word wrap

    如果没有输出结果,则代表命令可以成功完成。

    如果该命令没有成功完成,它会输出以下信息:

    Failed to restart sshd.service: Access denied
    See system logs and 'systemctl status sshd.service' for details.
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat