温馨提示×

Linux Context如何进行用户管理

小樊
33
2025-11-23 16:00:04
栏目: 智能运维

Linux 上下文中的用户管理

一 概念与范围

  • 在 Linux 语境中,“上下文”通常指进程运行时的安全与运行环境,核心包括:
    1. 身份上下文:Linux 用户/组(UID/GID)与登录会话;
    2. 权限上下文:文件与进程的 rwx 权限、属主/属组;
    3. 安全上下文:SELinux 的用户、角色、类型与级别(如 user:role:type:s0);
    4. 登录与特权提升:登录方式、sudo 提权与命令白名单。
  • 用户管理因此包含两层:
    • 基础层:账户、组、密码、登录与权限;
    • 安全层:SELinux 用户/角色/类型映射与 sudo 的角色切换。

二 基础用户与组管理

  • 账户与组
    • 创建用户:sudo useradd -m -s /bin/bash alice(创建家目录并指定 shell)
    • 设置密码:sudo passwd alice
    • 修改属性:sudo usermod -l alice_new alice(改名),sudo usermod -aG wheel alice(加入附加组)
    • 删除用户:sudo userdel -r alice(连同家目录删除)
    • 创建组:sudo groupadd devs;删除组:sudo groupdel devs
    • 组成员管理:sudo gpasswd -a alice devssudo gpasswd -d alice devs
  • 查询与审计
    • 查看身份:id alicegroups alicegetent passwd alicegetent group devs
    • 登录历史:last alice
    • 进程与清理:ps -u alice,必要时 pkill -u alice 终止其进程(谨慎)
  • 密码与账户策略
    • 锁定/解锁:sudo passwd -l alicesudo passwd -u alice
    • 过期策略:sudo chage -M 90 alice(90 天后必须改密)
  • 文件与目录权限
    • 属主/属组:sudo chown alice:devs /proj
    • 权限位:sudo chmod 750 /proj(所有者 rwx,组 rx,其他无)
    • 默认掩码:umask 022(新建文件通常为 644,目录 755)
      以上命令为跨发行版常用的基础用户与组管理操作,适用于 CentOS、Debian、Ubuntu 等主流发行版。

三 安全上下文与 sudo 的角色切换

  • 启用 SELinux 的用户/角色管理(以 RHEL/CentOS 的 targeted 策略为例)
    • 创建 SELinux 用户并指定默认与补充角色:
      sudo semanage user -a -r s0-s0:c0.c1023 -R "default_role_r administrator_r" SELinux_user_u
    • 为新 SELinux 用户准备上下文模板(沿用 staff_u 的默认上下文):
      sudo cp /etc/selinux/targeted/contexts/users/staff_u /etc/selinux/targeted/contexts/users/SELinux_user_u
    • 将 Linux 用户映射到 SELinux 用户:
      sudo semanage login -a -s SELinux_user_u -rs0:c0.c1023 linux_user
    • 配置 sudo 以切换到补充角色(交互式登录 shell):
      echo "linux_user ALL=(ALL) TYPE=administrator_t ROLE=administrator_r /bin/bash" | sudo tee /etc/sudoers.d/linux_user
    • 重新标记家目录以应用新上下文:
      sudo restorecon -FR -v /home/linux_user
    • 验证与切换:
      • 登录后检查:id -Z(应见默认角色)
      • 提权切换:sudo -i,再次 id -Z(应见补充角色)
  • 说明
    • 上述流程展示了如何为 Linux 账户配置 SELinux 用户/角色,并通过 sudo TYPE/ROLE 指令在登录会话与提权会话间切换安全上下文,实现“最小权限+按需提权”的细粒度控制。

四 实践建议

  • 最小权限原则:日常以普通用户工作,按需通过 sudo 执行管理命令;为 sudo 配置精确命令白名单,避免使用 ALL 的宽泛授权。
  • 身份与权限分离:区分“登录用户”和“管理角色”,在 SELinux 中通过不同 role/type 实现职责分离。
  • 审计与可追溯:启用审计服务(auditd),记录关键命令与登录事件,配合 lastidps 等命令进行核查。
  • 变更可回滚:修改账户、组、sudoers 与 SELinux 策略前先备份;变更后用 id -Zgetentsudo -l 复核生效结果。

0