引言
在Linux系统中,用户与用户组管理是系统安全与权限控制的核心。无论是多用户协作还是权限隔离,都需要管理员熟练掌握用户创建、权限分配及用户组配置等技能。本文将通过理论讲解与实战案例,系统介绍Linux用户与用户组管理的核心知识,帮助你高效完成团队权限管理需求。
一、用户与用户组基础概念
1. 用户类型
-
Root用户:UID为0,拥有系统最高权限,需谨慎使用。
-
系统用户:UID为1~499,用于系统服务,不可登录。
-
普通用户:UID为500~6000,由管理员创建,权限受限。
2. 用户组
-
用户组是权限分配的载体,用户可属于多个组。
-
基本组:用户创建文件时默认所属的组。
-
附加组:用户额外加入的组,用于扩展权限。
3. 核心配置文件
-
/etc/passwd
:存储用户基本信息(不含密码)。 -
/etc/shadow
:存储加密后的用户密码(仅root可读)。 -
/etc/group
:存储用户组信息。 -
/etc/login.defs
:定义用户默认配置(如UID范围、密码策略)。
二、用户管理命令详解
1. 添加用户:useradd
useradd -d /home/user1 -s /bin/bash user1 # 指定主目录和Shell
useradd -u 1005 -g developers user2 # 指定UID和基本组
2. 设置密码:passwd
passwd user1 # 交互式设置密码
echo "password" | passwd --stdin user1 # 非交互式设置(需root权限)
3. 修改用户信息:usermod
usermod -L user1 # 锁定用户
usermod -U user1 # 解锁用户
usermod -aG admin user1 # 将用户添加到附加组
4. 删除用户:userdel
userdel -r user1 # 删除用户并清除主目录
三、用户切换与权限配置
1. su
命令:切换用户
su - user1 # 切换到user1并加载环境变量
su - root # 切换到root用户(需密码)
2. sudo
命令:提权执行
-
配置sudo权限:通过
visudo
编辑/etc/sudoers
文件。
# 允许用户组temp执行除rm外的所有命令
%temp ALL=(ALL) /usr/bin/, /sbin/, !/usr/bin/rm
3. 禁用用户
passwd -l user1 # 锁定用户密码
usermod -e 2023-12-31 user1 # 设置账号过期时间
四、用户组管理命令
1. 创建用户组:groupadd
groupadd -g 2000 developers # 指定GID
2. 修改用户组:groupmod
groupmod -n dev_group -g 3000 developers # 修改组名和GID
3. 管理组内用户:gpasswd
gpasswd -a user1 developers # 添加用户到组
gpasswd -d user1 developers # 从组中移除用户
4. 删除用户组:groupdel
groupdel developers
五、实战案例:团队权限管理
需求:
为团队成员dali
、lily
、anan
创建临时账号,有效期一周,加入用户组temp
,并赋予sudo
权限(禁止使用rm
命令)。
步骤1:添加用户并设置有效期
useradd dali -e 2023-12-10
useradd lily -e 2023-12-10
useradd anan -e 2023-12-10
passwd dali # 依次设置密码
步骤2:创建用户组并添加成员
groupadd temp
gpasswd -a dali temp
gpasswd -a lily temp
gpasswd -a anan temp
步骤3:配置sudo权限
visudo # 添加以下内容
%temp ALL=(ALL) /usr/bin/, /sbin/, !/usr/bin/rm
验证权限:
sudo touch test.txt # 允许创建文件
sudo rm test.txt # 报错:无权执行rm
六、注意事项
-
慎用
userdel -r
:删除用户前确认是否需要保留数据。 -
编辑
sudoers
文件:必须使用visudo
命令,避免语法错误。 -
权限最小化原则:仅授予必要权限,避免过度授权。
总结
通过本文,你已掌握Linux用户与用户组管理的核心操作,包括用户创建、权限分配、用户组配置及实战案例。合理管理用户与权限不仅能提升系统安全性,还能优化团队协作效率。后续可结合文件权限(chmod
、chown
)进一步细化权限控制,构建更安全的Linux环境。