6.2. 限制新 Linux 用户:useradd


映射到 SELinux unconfined_u 用户的 Linux 用户在 unconfined_t 域中运行。当以映射到 unconfined_u 的 Linux 用户身份登录时,运行 id -Z 命令来查看:
~]$ id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Copy to Clipboard Toggle word wrap
当 Linux 用户在 unconfined_t 域中运行时,会应用 SELinux 策略规则,但存在策略规则,允许 Linux 用户在 unconfined_t 域中运行几乎所有访问权限。如果未限制的 Linux 用户执行 SELinux 策略定义的应用程序,则可以从 unconfined_t 域转换到其自身限制的域,则未限制的 Linux 用户仍会受到那个受限制域的限制。这样做的安全优势在于,即使 Linux 用户运行没有限制,应用程序仍会受到限制,因此对应用程序中漏洞的利用也会受到策略的限制。
注意
这不会防止系统用户阻止系统。相反,用户和系统会受到保护,使其免受应用漏洞造成的破坏。
使用 useradd 命令创建 Linux 用户时,请使用 a -Z 选项指定它们要映射到的 SELinux 用户。以下示例创建新的 Linux 用户 useruuser,并将该用户映射到 SELinux user_u 用户。映射到 SELinux user_u 用户的 Linux 用户在 user_t 域中运行。在此域中,除非 SELinux 策略允许该应用程序(如 passwd),且无法运行 susudo 命令,阻止他们成为 root 用户。

过程 6.1. 将新 Linux 用户限制给 user_u SELinux 用户

  1. 以 root 用户身份,创建一个新的 Linux 用户(useruuser),它映射到 SELinux user_u 用户。
    ~]# useradd -Z user_u useruuser
    Copy to Clipboard Toggle word wrap
  2. 要查看 useruuseruser_u 之间的映射,请以 root 用户身份输入以下命令:
    ~]# semanage login -l
    
    Login Name           SELinux User         MLS/MCS Range        Service
    
    __default__          unconfined_u         s0-s0:c0.c1023       *
    root                 unconfined_u         s0-s0:c0.c1023       *
    system_u             system_u             s0-s0:c0.c1023       *
    useruuser            user_u               s0                   *
    
    Copy to Clipboard Toggle word wrap
  3. 以 root 用户身份,为 Linux useruuser 用户分配密码:
    ~]# passwd useruuser
    Changing password for user useruuser.
    New password: Enter a password
    Retype new password: Enter the same password again
    passwd: all authentication tokens updated successfully.
    
    Copy to Clipboard Toggle word wrap
  4. 从当前会话中注销,然后以 Linux 用户身份登录。当您登录时,pam_selinux 模块将 Linux 用户映射到 SELinux 用户(本例中为 user_u),并设置生成的 SELinux 上下文。然后,将使用此上下文启动 Linux 用户的 shell。输入以下命令查看 Linux 用户的上下文:
    ~]$ id -Z
    user_u:user_r:user_t:s0
    
    Copy to Clipboard Toggle word wrap
  5. 从 Linux useruuser 的会话中注销,然后使用您的帐户重新登录。如果您不希望 Linux useruuser 用户,请以 root 用户及其主目录输入以下命令来删除它:
    ~]# userdel -Z -r useruuser
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat