在Linux系统中,用户管理是系统维护的基础技能。就像现实中每个人有不同的身份和权限一样,Linux系统通过用户和组来区分不同操作主体的权限,确保系统安全和资源隔离。本文将从基础概念到实际操作,带你一步步掌握Linux用户管理的核心知识。

一、用户与组的基本概念

在Linux系统中,每个用户都有一个唯一的身份标识(UID),每个用户默认属于一个主要组(GID),还可以附加到多个其他组。组的作用是将多个用户归类,方便统一管理权限(比如所有开发人员属于“dev”组,只需设置一次组权限)。

  • 用户:登录系统的身份,如root(管理员)、普通用户alicebob等。
  • :用户的集合,同一组用户共享相同的组权限。
  • 权限三要素:文件/目录的权限分为三类——所有者(用户自己)、所属组(组内用户)、其他用户(非组内且非所有者的用户)。

二、创建用户

创建用户需要管理员权限(通过rootsudo),使用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. 修改文件所有者/所属组:chownchgrp

  • 修改所有者(需管理员权限):
  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的多用户安全机制。操作时注意避免删除重要用户错误分配权限,确保系统稳定运行。

小夜