[ Content contribution] Linux 入门教程(十):用户与用户组管理全解析
Tofloor
poster avatar
玄圭SwenGway
deepin
2025-01-07 12:32
Author

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 的命令。


七、总结与实战

实战练习:

  1. 创建一个新用户并设置密码
    sudo useradd -m student
    sudo passwd student
    
  2. 将用户加入一个组
    sudo groupadd project_team
    sudo usermod -aG project_team student
    
  3. 验证用户信息
    id student
    
  4. 切换用户并验证权限
    su - student
    groups
    
  5. 给用户 sudo 权限
    sudo usermod -aG sudo student
    

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

Reply Favorite View the author
All Replies
晚秋(lateautumn)
Moderator
2025-01-07 15:58
#1

这么好的教程,没有点赞怎么行! 学习了,谢谢分享。like

Reply View the author