前言
"在Linux的王国里,每个用户都是一位独特的居民,而用户组则是他们归属的部落。" ------《Linux社会学导论》
第一章 Linux用户图鉴:看看你是哪种"房客"
1.1 普通用户:公寓里的乖巧租客
- 日常行为:在自己的房间🚪(/home/用户名)里写文档、听音乐
- 权限限制 :
- 不能拆承重墙(修改系统文件)
- 不能进邻居家(访问其他用户目录)
- 不能调整整栋楼🏢的水电(修改系统配置)
经典案例 :
新手Alice试图删除系统字体:
bash
rm /usr/share/fonts/* # 立即收获"Permission denied"警告
1.2 Root用户:无所不能的超级房东
- 特权展示:
普通用户 | Root用户 |
---|---|
只能给自己房间换灯泡 | 能改造整栋楼的电路系统 |
需要申请才能装修 | 直接抡大锤砸墙也没人管 |
每月按时交水电费 | 随时修改水电费计价器 |
安全警告 ⚠️:
某运维工程师使用Root权限运行未知脚本,结果服务器变成比特币矿机------这就是"钥匙交给陌生人"的代价!
第二章 用户身份证:UID与GID的秘密
2.1 UID:用户的数字指纹
- 查看命令:
bash
id -u alice # 输出1000(普通用户典型UID)
id -u root # 输出0(超级用户专属编号)
- 特殊UID彩蛋 :
- UID 65534:匿名用户"nobody"
- UID 666:系统保留(其实是给恶魔程序用的?)
2.2 GID:用户的"朋友圈"标签
- 创建用户组:
bash
sudo groupadd gamers # 新建"游戏玩家"群组
- 加入群组的好处 :
- 共享游戏存档(目录权限设置为770)
- 联机不用输密码(通过组权限控制)
- 接收组内广播消息(wall命令)
趣味实验 :把同事加入"audio"组,悄悄用cat /dev/urandom > /dev/audio
给他的电脑💻️播放白噪音!
第三章 权限魔法:Linux的"门禁系统"
3.1 三原色权限模型

- 读 ( r ):像图书馆访客,只能看书名
- 写 ( w ):像图书管理员,可以修改书目
- 执行 ( x ):像魔法师,能启动咒语(程序)
权限计算器🧮:
bash
chmod 764 secret_room.txt
# 所有者:rwx (7=4+2+1)
# 组用户:rw- (6=4+2)
# 其他人:r-- (4)
3.2 特殊权限:隐藏在暗门的机关
粘滞位(t):
bash
chmod +t /shared_upload # 修改目录权限,只有该目录的所有者、文件所有者或root用户才能删除目录中的文件
+t
:表示添加"粘滞位"(sticky bit)。当粘滞位被设置在一个目录上时,只有该目录的所有者、文件的所有者或root用户才能删除或重命名该目录中的文件。/shared_upload
:是需要修改权限的目标目录。
SUID:
bash
chmod u+s /usr/bin/passwd # 普通用户修改密码时临时获得Root权限
u+s
:表示为文件的所有者添加"设置用户ID位"(Set User ID,简称SUID)。当SUID被设置在一个可执行文件上时,普通用户在执行该文件时,会以文件所有者的身份(通常是root用户)运行,而不是以执行该文件的用户的身份运行。/usr/bin/passwd
:该文件用于更改用户密码的命令,通常由root用户所有。
SGID:
bash
chmod g+s /project_team # 新建文件自动继承组身份
g+s
:表示为目录的所属组(group)添加"设置组ID位"(Set Group ID,简称SGID)。当SGID被设置在一个目录上时,在该目录中新建的文件和子目录的所属组会继承该目录的所属组,而不是创建文件的用户的默认组。/project_team
:是需要修改权限的目标目录。
第四章 用户管理:从"人口普查"到"社区服务"
4.1 用户生命周期管理
新生儿落户:
bash
sudo useradd -m -s /bin/bash -G developers alice
-m
:创建家目录-s
:指定默认Shell-G
:加入附加组
居民改名:
bash
sudo usermod -l alicia alice # 把alice改名为alicia
-l
:指定新的用户名
注销户口:
bash
sudo userdel -r bob # 删除用户并清除家目录
4.2 密码管理:钥匙的安全哲学
强密码生成术:
bash
# 生成12位随机密码(包含大小写字母和数字)
openssl rand -base64 12 | cut -c1-12
密码老化策略:
bash
# /etc/login.defs
PASS_MAX_DAYS 90 # 密码有效期
PASS_MIN_DAYS 7 # 修改间隔
PASS_WARN_AGE 14 # 到期提醒
第五章 用户管控:社区里的"天网系统"
5.1 资源配额:公平分配水电
限制磁盘空间:
bash
sudo setquota -u alice 500M 700M 0 0 /home
setquota
:用于设置磁盘配额的命令行工具,常用于 Unix/Linux 系统。-u
:指定接下来的是用户配额。如果使用-g
,则是设置组配额。alice
:目标用户的用户名。500M
:软限制(soft limit),即用户可以使用的最大磁盘空间为 500 兆字节。700M
:硬限制(hard limit),即用户最多只能使用 700 兆字节的磁盘空间。0
:这是软限制的宽限期(grace period),单位为秒。这里设置为 0 表示没有宽限期。0
:这是硬限制的宽限期(grace period),同样设置为 0 表示没有宽限期。/home
:这是应用配额的目录。
内存用量管控:
bash
# 使用cgroups限制内存
cgcreate -g memory:alice_group # 在内存子系统下创建名为alice_group的新cgroup
echo 1000000000 > /sys/fs/cgroup/memory/alice_group/memory.limit_in_bytes # 设置内存限制为1GB
cgcreate
:用户创建控制组(cgroup)的命令-g memory:alice_group
:- memory:指定要操作的子系统为内存子系统。
- alice_group:这是新创建的cgroup的名称。
echo 1000000000 >
:将数值写入指定的文件。/sys/fs/cgroup/memory/alice_group/
:alice_group
cgroup在内存子系统下的目录。memory.limit_in_bytes
:用于设置内存限制的文件。
第六章 用户冷知识:Linux社区的奇闻异事
- 历史典故:最早的Linux用户是 Linus Torvalds 本人,UID=1000。
- 彩蛋文化 :在终端输入
sl
(需安装),会看到一辆蒸汽火车呼啸而过。 - 哲学思考 :每个用户的
.bashrc
文件就像个性签名,记录着TA的偏好与习惯。 - 都市传说:传说某个服务器上存在UID=666的用户,专门处理"危险任务"。
终极挑战:成为用户管理大师
- 情景模拟 :公司新来10个实习生,请用一条命令批量创建用户(提示:
newusers
命令) - 侦探游戏:找出最近修改过密码的用户(提示:检查/etc/shadow文件时间戳)
- 密室逃脱 :当忘记sudo密码时,如何不联系管理员安装软件?(提示:利用
alias
魔法) - 社区建设:创建一个共享文件夹,让设计组所有成员可以协同编辑PSD文件(提示:结合SGID与umask)
结语:用户即宇宙
Linux用户系统就像一面镜子,映照出数字世界的秩序与自由。当我们理解:
- 每个用户都是独特的个体
- 每个权限都是精密的约定
- 每个组都是协作的社区
才能真正领悟《Linux之道》中的名言:
"优秀的系统管理员不是控制用户,而是创造让用户自由生长的环境。"
愿你在Linux的国度里,既能做遵守规则的好居民,也能成为建设社区的智者! 🐧