在Linux系统中,用户管理是系统维护的基础技能。就像现实中每个人有不同的身份和权限一样,Linux系统通过用户和组来区分不同操作主体的权限,确保系统安全和资源隔离。本文将从基础概念到实际操作,带你一步步掌握Linux用户管理的核心知识。
一、用户与组的基本概念¶
在Linux系统中,每个用户都有一个唯一的身份标识(UID),每个用户默认属于一个主要组(GID),还可以附加到多个其他组。组的作用是将多个用户归类,方便统一管理权限(比如所有开发人员属于“dev”组,只需设置一次组权限)。
- 用户:登录系统的身份,如
root(管理员)、普通用户alice、bob等。 - 组:用户的集合,同一组用户共享相同的组权限。
- 权限三要素:文件/目录的权限分为三类——所有者(用户自己)、所属组(组内用户)、其他用户(非组内且非所有者的用户)。
二、创建用户¶
创建用户需要管理员权限(通过root或sudo),使用useradd命令(部分系统用adduser,效果类似但参数略有不同)。
1. 基本创建命令¶
sudo useradd -m 用户名
-m:自动创建用户的家目录(若不指定,部分系统可能默认不创建)。- 示例:创建用户
alice,并自动生成家目录:
sudo useradd -m alice
2. 设置密码¶
创建用户后需设置密码,否则无法登录:
sudo passwd alice
输入密码后按回车,密码会被加密存储(不会明文显示)。
3. 查看用户信息¶
用id命令确认用户是否创建成功:
id alice
输出示例:uid=1001(alice) gid=1001(alice) groups=1001(alice),表示用户alice的UID是1001,GID是1001(主组)。
4. 切换用户登录¶
用su -命令切换到刚创建的用户:
su - alice
此时提示符变为alice@hostname:~$,表示已以alice身份登录。
三、删除用户¶
删除用户使用userdel命令,需谨慎操作(避免误删数据)。
1. 基本删除命令¶
sudo userdel 用户名
- 不加参数:仅删除用户信息,家目录保留(需手动删除)。
- 加
-r参数:同时删除用户的家目录和相关文件:
sudo userdel -r alice
注意事项¶
- 删除用户前建议备份相关数据(如用户目录下的文件)。
- 若用户仍在登录状态,需先注销或强制退出(可通过
pkill -9 -u alice终止进程)。
四、权限分配:文件与用户的关系¶
权限分配是用户管理的核心,决定用户能否访问、修改或运行文件/目录。Linux权限通过数字或字母表示,以rwxr-xr-x为例,含义如下:
1. 权限表示法¶
- 字母法:
r(读,4)、w(写,2)、x(执行,1)。 - 三类用户:
u(所有者)、g(所属组)、o(其他用户)。 - 数字法:将
r/w/x转换为4/2/1,累加后表示权限。例如: rwx= 4+2+1=7(所有者权限)rx= 4+1=5(所属组/其他用户权限)
2. 修改文件权限:chmod命令¶
示例1:字母法修改(更直观)¶
# 给文件test.txt的所有者增加执行权限
chmod u+x test.txt
# 给所属组移除写权限
chmod g-w test.txt
# 给其他用户添加读权限
chmod o+r test.txt
示例2:数字法修改(简洁高效)¶
# 所有者读+写+执行,所属组读+执行,其他用户读(权限754)
chmod 754 test.txt
3. 修改文件所有者/所属组:chown与chgrp¶
- 修改所有者(需管理员权限):
sudo chown alice:dev test.txt # 同时修改所有者为alice,所属组为dev
- 修改所属组:
sudo chgrp dev test.txt # 仅修改所属组为dev
4. 批量操作目录:递归修改权限¶
对目录使用-R参数,递归修改所有子文件/目录:
# 目录dir及其子文件全部设置为所有者读+写+执行,其他用户只读
sudo chmod -R 754 dir
五、sudo权限:临时管理员权限¶
普通用户默认无法执行系统级命令(如安装软件、修改系统配置),需通过sudo临时获取管理员权限。
1. 配置sudo权限¶
默认情况下,sudo需用户属于wheel组(CentOS)或sudo组(Ubuntu)。添加用户到组:
sudo usermod -aG wheel alice # CentOS添加到wheel组
# 或Ubuntu/Debian:sudo usermod -aG sudo alice
2. 使用sudo执行命令¶
alice@hostname:~$ sudo apt update # 更新软件源(管理员权限)
[sudo] password for alice: # 输入alice的密码
3. 禁止普通用户使用sudo¶
若需限制用户,可编辑/etc/sudoers文件(建议用sudo visudo,避免语法错误):
sudo visudo
找到root ALL=(ALL:ALL) ALL行,注释不需要sudo权限的用户。
六、总结¶
Linux用户管理的核心是创建、删除用户和合理分配权限。关键命令需牢记:
- 创建用户:sudo useradd -m 用户名(加-m创建家目录)+ passwd 用户名(设置密码)。
- 删除用户:sudo userdel -r 用户名(-r删除家目录)。
- 修改权限:chmod(字母/数字法)、chown/chgrp(修改所有者/组)。
- 临时提权:sudo(需用户在sudo组中)。
初学者可通过练习创建用户、修改权限,逐步熟悉Linux的多用户安全机制。操作时注意避免删除重要用户或错误分配权限,确保系统稳定运行。