Linux 用户与用户组管理完整实操教程

一、文章前言

本文基于Ubuntu虚拟机,通过Xshell远程连接实操用户、用户组创建、权限共享、文件权限修改全流程,梳理useradd/usermod/groupadd/chmod/chown等核心命令框架,附完整操作报错排坑解决方案,适合Linux新手入门账户管理。

二、基础概念理解

1. 核心配置文件
  1. /etc/passwd:存储所有用户基础信息,7段冒号分隔字段:用户名:x:UID:GID:备注:家目录:登录Shell
  2. /etc/group:存储用户组信息,记录组名、GID、组内成员
  3. /etc/shadow:加密存储用户登录密码,仅root可读
  4. /etc/skel:新用户家目录默认配置模板(bash环境文件)
2. 权限核心概念
  • UID:用户唯一ID,root=0,普通用户从1000起
  • GID:组唯一ID,每个用户默认拥有私有组
  • 附加组:用户额外加入的共享组,用于多用户文件共享
  • 文件权限:r(读) w(写) x(执行),分所有者、同组用户、其他用户三级权限

三、命令知识框架(用途+核心参数)

1. 用户管理命令
  1. useradd
    用途:创建新用户
    常用参数:-m自动生成家目录;-c为用户添加备注信息
  2. passwd
    用途:设置、修改用户登录密码
    使用方式:命令后直接填写用户名,按交互提示输入两次密码即可
  3. usermod
    用途:修改用户相关信息
    常用参数:-c修改用户备注;-aG将用户追加至附加组;-g修改用户私有主组
  4. userdel
    用途:删除系统用户
    常用参数:-r删除用户同时,一并删除对应用户家目录与邮件文件
  5. id
    用途:查看用户UID、GID以及该用户所属全部用户组
    使用方式:命令后填写目标用户名
  6. su -
    用途:完整切换登录用户
    参数说明:-代表完全切换环境,加载目标用户的环境变量并自动进入其家目录
2. 用户组管理命令
  1. groupadd
    用途:创建全新用户组
    使用方式:命令后直接填写自定义组名
  2. groupmod
    用途:修改已有用户组信息
    常用参数:-n 新组名 旧组名,实现用户组重命名
  3. grep
    用途:文本过滤检索,用于快速查看配置文件内用户、组信息
    示例:grep testuser /etc/passwd检索testuser用户的配置信息
3. 文件权限与属主修改命令
  1. chown
    用途:修改文件、目录的所有者与所属组
    常用参数:-R递归作用,修改目录下所有子文件、子目录归属
  2. chmod
    用途:修改文件/目录读写执行权限
    常用参数:-R递归修改权限;数字权限标识如660、770分别对应文件、目录共享权限
  3. ls -l
    用途:长格式列出文件信息,直观查看文件权限、属主、属组等内容

四、Xshell完整实操步骤

实操1:创建用户、设置密码、验证用户

操作命令:

# root权限执行,-m自动生成家目录sudouseradd-mtestuser# 设置登录密码sudopasswdtestuser# 查看用户是否写入配置文件greptestuser /etc/passwd
实操2:修改用户备注字段
usermod-c"测试共享用户 testuser"testusergreptestuser /etc/passwd
实操3:创建共享用户组
groupaddteam01grepteam01 /etc/group
实操4:用户加入附加组 + 重命名组
# -aG 追加附加组,不可省略-ausermod-aGteam01 testuser# 重命名组 team01 → team_groupgroupmod-nteam_group team01# 验证用户所属所有组idtestuser# 查看组内成员grepteam_group /etc/group
实操5:用户家目录创建文件、目录并查看权限
# 完整切换至testuser用户su- testuser# 创建测试文本文件touchtest.txt# 创建共享目录mkdirshare_dir# 查看默认权限ls-l
报错排坑补充

若创建用户未加-m,切换用户会提示无法更改到/home/testuser,root下执行修复命令:

mkdir/home/testuserchowntestuser:testuser /home/testuserchmod700/home/testusercp-r/etc/skel/.* /home/testuser/chown-Rtestuser:testuser /home/testuser
实操6:修改文件属组、配置组内共享权限
# 切回root执行exit# 递归修改家目录所有文件归属组为共享组team_groupchown-Rtestuser:team_group /home/testuser/*# 文件权限:所有者/同组读写,其他用户无权限chmod660/home/testuser/test.txt# 目录权限:所有者/同组读写执行,其他用户无权限chmod770/home/testuser/share_dir# 查看最终权限ls-l/home/testuser
实操7:删除用户(可选操作)
# -r 彻底删除用户+家目录userdel-rtestuser

五、实操常见报错总结

  1. useradd: Permission denied
    原因:普通用户无权限修改系统账户文件,解决方案:命令前加sudo或切换root用户
  2. su: 无法更改到 /home/testuser 目录:没有那个文件或目录
    原因:useradd未使用-m,未自动创建家目录,解决方案:root手动创建目录并复制skel模板
  3. mkdir: Permission denied(普通用户执行mkdir /home/xxx)
    原因:/home是系统目录,仅root拥有写入权限,家目录创建操作必须root执行

六、学习总结

  1. 用户、组管理类命令属于系统级操作,全部需要root/sudo权限;
  2. 创建用户务必使用useradd -m,避免家目录缺失的一系列报错;
  3. usermod -aG-a参数不可省略,否则会清空用户原有附加组;
  4. 组内文件共享核心权限:文件660、目录770,搭配chown修改统一属组,实现同组成员读写操作;
  5. 所有用户信息修改都会同步写入/etc/passwd/etc/group配置文件,可通过grep快速验证操作结果。