3.8. 通过映射到 sysadm_u来限制管理员


您可以通过将用户直接映射到 sysadm_u SELinux 用户来限制具有管理权限的用户。当用户登录时,会话会在 sysadm_u:sysadm_r:sysadm_t SELinux 上下文中运行。

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

先决条件

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

步骤

  1. 可选:要允许 sysadm_u 用户使用 SSH 连接到系统:

    # setsebool -P ssh_sysadm_login on
  2. 将新用户映射到 sysadm_u SELinux 用户:

    • 要映射新用户,请在 wheel 用户组中添加一个新用户,并将用户映射到 sysadm_u SELinux 用户:

      # adduser -G wheel -Z sysadm_u <example_user>
    • 要映射现有用户,将用户添加到 wheel 用户组,并将用户映射到 sysadm_u SELinux 用户:

      # usermod -G wheel -Z sysadm_u <example_user>
  3. 恢复用户主目录的上下文:

    # restorecon -R -F -v /home/<example_user>

验证

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

    # semanage login -l | grep <example_user>
    <example_user>     sysadm_u    s0-s0:c0.c1023   *
  2. <example_user> 身份登录,例如使用 SSH,并显示用户的安全上下文:

    [<example_user>@localhost ~]$ id -Z
    sysadm_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
  3. 切换到 root 用户:

    $ sudo -i
    [sudo] password for <example_user>:
  4. 验证安全性上下文是否保持不变:

    # id -Z
    sysadm_u:sysadm_r:sysadm_t:s0-s0:c0.c1023
  5. 尝试管理任务,例如重启 sshd 服务:

    # systemctl restart sshd

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

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

    Failed to restart sshd.service: Access denied
    See system logs and 'systemctl status sshd.service' for details.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.