Linux用户与组管理
Linux用户与组管理
用户和组的概念
Linux是一个多用户操作系统,通过用户和组来管理系统资源的访问权限。
- 用户(User):系统中的每个登录账户
- 组(Group):用户的集合,便于批量管理权限
- 主组(Primary Group):用户登录时所属的组
- 附加组(Supplementary Group):用户额外所属的组
用户管理命令
添加用户
# 添加用户
useradd username
# 添加用户并指定选项
useradd -m -s /bin/bash -G wheel username
# -m: 创建主目录
# -s: 指定shell
# -G: 指定附加组
# 设置用户密码
passwd username
修改用户
# 修改用户信息
usermod -l newname oldname # 修改用户名
usermod -d /new/home username # 修改主目录
usermod -s /bin/zsh username # 修改默认shell
usermod -aG groupname username # 添加到附加组(-a表示追加)
# 锁定和解锁用户
usermod -L username # 锁定用户
usermod -U username # 解锁用户
删除用户
# 删除用户
userdel username # 删除用户(保留主目录)
userdel -r username # 删除用户及其主目录
组管理命令
创建和删除组
# 创建组
groupadd groupname
# 删除组
groupdel groupname
# 修改组
groupmod -n newname oldname # 重命名组
管理组成员
# 将用户添加到组
gpasswd -a username groupname
# 将用户从组移除
gpasswd -d username groupname
# 查看组成员
getent group groupname
配置文件详解
/etc/passwd
每行格式:用户名:密码占位符:UID:GID:描述:主目录:默认shell
/etc/shadow
存储用户密码的加密信息,仅root可读。
/etc/group
每行格式:组名:密码:GID:成员列表
实践:批量创建用户
#!/bin/bash
# 批量创建用户脚本
for user in {user01..user10}; do
useradd -m -s /bin/bash $user
echo "$user:password123" | chpasswd
echo "User $user created"
done
查看用户信息
whoami # 当前用户名
id username # 用户UID、GID和组信息
groups username # 用户所属的所有组
last # 最近登录记录
w # 当前登录用户
总结
用户和组管理是Linux系统管理的基础技能。合理规划用户和组的结构,有助于维护系统的安全性和可管理性。