Linux 用户与用户组管理完整实操教程
一、文章前言
本文基于Ubuntu虚拟机,通过Xshell远程连接实操用户、用户组创建、权限共享、文件权限修改全流程,梳理useradd/usermod/groupadd/chmod/chown等核心命令框架,附完整操作报错排坑解决方案,适合Linux新手入门账户管理。
二、基础概念理解
1. 核心配置文件
/etc/passwd:存储所有用户基础信息,7段冒号分隔字段:用户名:x:UID:GID:备注:家目录:登录Shell/etc/group:存储用户组信息,记录组名、GID、组内成员/etc/shadow:加密存储用户登录密码,仅root可读/etc/skel:新用户家目录默认配置模板(bash环境文件)
2. 权限核心概念
- UID:用户唯一ID,root=0,普通用户从1000起
- GID:组唯一ID,每个用户默认拥有私有组
- 附加组:用户额外加入的共享组,用于多用户文件共享
- 文件权限:
r(读) w(写) x(执行),分所有者、同组用户、其他用户三级权限
三、命令知识框架(用途+核心参数)
1. 用户管理命令
useradd
用途:创建新用户
常用参数:-m自动生成家目录;-c为用户添加备注信息passwd
用途:设置、修改用户登录密码
使用方式:命令后直接填写用户名,按交互提示输入两次密码即可usermod
用途:修改用户相关信息
常用参数:-c修改用户备注;-aG将用户追加至附加组;-g修改用户私有主组userdel
用途:删除系统用户
常用参数:-r删除用户同时,一并删除对应用户家目录与邮件文件id
用途:查看用户UID、GID以及该用户所属全部用户组
使用方式:命令后填写目标用户名su -
用途:完整切换登录用户
参数说明:-代表完全切换环境,加载目标用户的环境变量并自动进入其家目录
2. 用户组管理命令
groupadd
用途:创建全新用户组
使用方式:命令后直接填写自定义组名groupmod
用途:修改已有用户组信息
常用参数:-n 新组名 旧组名,实现用户组重命名grep
用途:文本过滤检索,用于快速查看配置文件内用户、组信息
示例:grep testuser /etc/passwd检索testuser用户的配置信息
3. 文件权限与属主修改命令
chown
用途:修改文件、目录的所有者与所属组
常用参数:-R递归作用,修改目录下所有子文件、子目录归属chmod
用途:修改文件/目录读写执行权限
常用参数:-R递归修改权限;数字权限标识如660、770分别对应文件、目录共享权限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五、实操常见报错总结
useradd: Permission denied
原因:普通用户无权限修改系统账户文件,解决方案:命令前加sudo或切换root用户su: 无法更改到 /home/testuser 目录:没有那个文件或目录
原因:useradd未使用-m,未自动创建家目录,解决方案:root手动创建目录并复制skel模板mkdir: Permission denied(普通用户执行mkdir /home/xxx)
原因:/home是系统目录,仅root拥有写入权限,家目录创建操作必须root执行
六、学习总结
- 用户、组管理类命令属于系统级操作,全部需要root/sudo权限;
- 创建用户务必使用
useradd -m,避免家目录缺失的一系列报错; usermod -aG的-a参数不可省略,否则会清空用户原有附加组;- 组内文件共享核心权限:文件
660、目录770,搭配chown修改统一属组,实现同组成员读写操作; - 所有用户信息修改都会同步写入
/etc/passwd、/etc/group配置文件,可通过grep快速验证操作结果。