Linux用户与用户组管理核心是UID/GID权限体系:用户分root(UID=0)、系统用户(UID 1–999)和普通用户(UID≥1000);每用户有唯一主组,可属多个附加组;关键配置文件为/etc/passwd(用户信息)和/etc/group(组信息)。

Linux 用户与用户组管理是系统运维和日常维护的基础能力。掌握如何规范创建、调整和清理账号,以及合理分配组权限,能有效保障系统安全与协作效率。
创建用户:明确配置再执行
使用 useradd 命令新建用户时,不加选项会按发行版默认策略自动创建同名主组、家目录(/home/用户名)和 shell(通常是 /bin/bash)。但生产环境建议显式指定关键参数:
-
-u 指定 UID,避免冲突(如
useradd -u 1005 alice) - -g 指定主组(需已存在),否则默认创建同名私有组
-
-G 添加附加组,多个组用逗号分隔(如
-G sudo,ftp) - -d 自定义家目录路径,配合 -m 确保目录被创建
-
-s 设置登录 shell;禁止登录可设为
/sbin/nologin或/bin/false -
-c 添加描述信息,便于后续识别用途(如
-c "backup service account")
修改用户:追加而非覆盖附加组
用户创建后常需调整归属关系,usermod 是核心命令。特别注意附加组操作逻辑:
- 直接用 -G group1,group2 会清空原有附加组,仅保留列出的组
- 要保留原有组并新增,必须加上 -a(append)选项:
usermod -aG docker,devops alice - 修改主组用 -g,该操作不影响文件所属组,但新创建的文件将属于新主组
- 改用户名用 -l,如
usermod -l bob alice;原家目录名不会自动更新,需手动处理 - 锁定账户用
passwd -l username,本质是在 /etc/shadow 密码字段前加 !
删除用户:区分是否清理家目录
删除操作不可逆,务必确认后再执行:
- userdel username:仅删除账号记录,家目录、邮件池等全部保留
- userdel -r username:彻底清除账号及所有关联数据(家目录、邮箱、/var/spool/mail 中的邮件等)
- 删除前建议先用
id username和ls -ld /home/username核实状态 - 若用户正在登录或进程未退出,
userdel可能失败,可加 -f 强制(慎用)
用户组管理:主组与附加组分工明确
组是权限落地的关键载体,理解两类组的作用能避免误配:
- 每个用户有且只有一个主组(primary group),新建文件默认继承该组所有权
-
附加组(secondary groups)用于授权共享资源,如将用户加入
www-data组以编辑网站文件,加入docker组以免 sudo 运行容器 - 创建组用
groupadd groupname;删除空组用groupdel groupname - 查看用户所属组:运行
groups(当前用户)或groups username(指定用户) - 查看完整组成员:
getent group groupname比直接读 /etc/group 更可靠(支持 LDAP 等外部源)


















