[ Content contribution]Linux 入门教程(十):用户与用户组管理全解析

Linux 入门教程(十):用户与用户组管理全解析

欢迎来到用户与权限的世界!Linux 系统的强大之一,就在于它的多用户和多权限设计。这一节,我们将从用户与用户组的基本概念,到管理命令的具体使用,再到与 Windows 的比较,一路带你深入浅出地了解如何高效管理 Linux 系统中的用户与用户组。

一、单用户与多用户系统

单用户系统:顾名思义,就是一个设备只能由一个人使用,例如老式的 DOS 系统或一些简单的嵌入式设备。

多用户系统:Linux、Unix 以及现代服务器操作系统允许多个用户同时登录和操作。用户之间有权限隔离,互不干扰,适合团队协作和复杂任务。

二、Linux 用户与用户组:与 Windows 的对比

特性

Linux

Windows

用户管理

多用户,多权限,用户之间隔离严格

用户组也有,但隔离弱

系统用户

除普通用户外,还有很多系统用户

主要是普通用户和管理员

文件权限

每个文件属于特定用户和用户组

权限管理基于 ACL

管理方式

命令行为主,也支持图形界面管理

图形界面为主

在 Linux 中,用户通过用户组共享资源。例如,一个项目组的所有成员可以加入同一用户组,共享相同的目录和文件。

三、用户与用户组的基本操作

1. 添加用户与用户组

创建新用户:useradd

使用 useradd 命令可以创建一个新用户:

sudo useradd -m username

-m:自动创建用户的主目录,路径为 /home/username。

username:新用户的名字。

为用户设置密码:

sudo passwd username

提示:初次创建用户后,密码为空,需要手动设置。

创建新用户组:groupadd

添加用户组的命令很简单:

sudo groupadd groupname

2. 删除用户

使用 userdel 删除用户:

sudo userdel username

删除用户及其主目录:

sudo userdel -r username

注意:如果用户的数据非常重要,请提前备份。

3. 修改用户信息

使用 usermod 命令修改用户的设置:

sudo usermod -g newgroup username

-g:将用户主组改为 newgroup。

其他常见选项:

-aG:将用户添加到附加组,而不改变主组。

-l newname:更改用户名。

四、查看用户信息

1. id:用户和用户组信息

使用 id 命令查看当前用户的详细信息:

id username

输出示例:

uid=1001(username) gid=1001(groupname) groups=1001(groupname),27(sudo)

uid:用户 ID。

gid:主组 ID。

groups:用户所属的所有组。

2. 切换用户:su

su(switch user)命令允许切换到其他用户:

su - username

-:切换时加载目标用户的环境变量。

不带用户名则默认切换到 root。

切换到 root 后,你拥有系统的最高权限。请慎用!

五、受限特权:sudo

sudo 允许普通用户临时获得管理员权限,执行需要高权限的命令。

配置文件:sudo 的权限通过 /etc/sudoers 配置。

使用方式:

sudo command

例如:

sudo apt update

为什么用 sudo 而不是 su?

更安全:只对单个命令授予权限。

可追溯:所有使用 sudo 的操作都会被记录在 /var/log/auth.log 文件中。

扩展:将用户添加到 sudo 组:

sudo usermod -aG sudo username

六、记录用户操作:history

Linux 会记录每个用户执行的命令,存储在用户的 ~/.bash_history 文件中。

查看历史命令:

history

常用技巧:

查找某个关键字的历史命令:

history | grep keyword

重新执行某条命令:

!N

例如,!100 执行编号为 100 的命令。

七、总结与实战

实战练习:

创建一个新用户并设置密码:

sudo useradd -m student

sudo passwd student

将用户加入一个组:

sudo groupadd project_team

sudo usermod -aG project_team student

验证用户信息:

id student

切换用户并验证权限:

su - student

groups

给用户 sudo 权限:

sudo usermod -aG sudo student

通过这些实战操作,你应该能熟练掌握 Linux 用户与用户组的管理,并理解每一步背后的意义。记住:权限管理是系统安全的基石,多练多试,别怕犯错! 🎉