01. 用户管理进阶——useradd / usermod
基础的用户管理你可能知道 useradd 和 passwd,但其实还有更多玩法。创建用户不光设个密码,还得指定家目录、shell、所属组:
bash
useradd -m -s /bin/bash -G sudo,docker john # 建用户 + 家目录 + bash + 附加组
userdel -r john # 删用户 + 删除他的家目录
usermod -aG docker john # 把 john 加入 docker 组
usermod -s /bin/zsh john # 改 john 的默认 shell
usermod -L john # 锁定用户(禁止登录)
usermod -U john # 解锁
passwd -l john # 锁定密码
passwd -S john # 查看用户密码状态
chage -l john # 看密码过期策略
chage -M 90 john # 密码 90 天过期02. 组管理
用户组就是「权限的批量管理」。把一群用户放进一个组,然后给这个组设权限,组里的人自动继承。比一个个改方便多了:
bash
groupadd dev # 新建 dev 组
groupmod -n developers dev # 改名为 developers
groupdel dev # 删组
usermod -aG dev john # 把 john 加入 dev 组
gpasswd -d john dev # 把 john 移出 dev 组
groups john # 看 john 在哪些组里
getent group dev # 看 dev 组里有谁03. ACL——细粒度权限
传统的 rwx 权限太粗了——只有主人、组、其他人三级。但现实需求可能是「这个文件让 alice 能写、bob 只读、其他人看不着」。这时候 ACL(Access Control List)就派上用场了:
bash
# 先确认文件系统支持 ACL
mount | grep acl
getfacl file.txt # 查看 ACL 权限
setfacl -m u:alice:rw file.txt # 给 alice 单独设读写
setfacl -m u:bob:r file.txt # 给 bob 只读
setfacl -m g:dev:rwx dir/ # 给 dev 组成员全权限
setfacl -x u:alice file.txt # 删掉 alice 的 ACL
setfacl -b file.txt # 清空所有 ACL(回到普通权限)
setfacl -R -m u:alice:rw dir/ # 递归设置有 ACL 的文件在 ls -l 里权限末尾会显示一个 + 号,看到它就知道这个文件有多余的权限规则。
04. PAM——认证的乐高积木
PAM(Pluggable Authentication Modules)是 Linux 认证系统的核心。你可以理解成「认证流水线」——login、ssh、sudo 这些程序不自己管密码校验,统统交给 PAM 处理。
PAM 让你可以组合各种认证方式:密码、指纹、手机令牌都可以串起来,像乐高一样拼装。配置在 /etc/pam.d/ 目录下:
bash
# /etc/pam.d/ 下的配置文件
ls /etc/pam.d/
common-auth # 认证方式(密码、密钥等)
common-account # 账户管理(过期、锁定)
common-session # 会话管理(登录后做什么)
common-password # 密码策略(复杂度、长度要求)
# 常用 PAM 模块
# pam_tally2.so - 登录失败N次锁定账户
# pam_limits.so - 资源限制
# pam_umask.so - 新文件默认权限PAM 配置改错可能导致所有人都登录不了。改之前先备份,留一个 root 终端不要关以防万一。
知识测验
第 1/5 题正确 0
ACL 和传统权限最大区别?