核心是“三层组合”:独立账号+组级批量授权+命令级细粒度控制,通过user+group+sudo+acl四层协同实现最小权限原则。

核心是“三层组合”:独立账号 + 组级批量授权 + 命令级细粒度控制。不靠给 root、不靠改 umask、也不靠堆附加组,而是用 user + group + sudo + ACL 四层协同,让每个人只拿到刚好够用的权限。
一、每人一个独立账号,禁用共用身份
每个真实运维人员必须有唯一 UID,禁止多人共享 root 或同一普通账号。系统认 UID 不认用户名,UID 为 0 就是 root —— 即使叫 alice,UID=0 也等同于 root。
- 创建账号时指定起始 UID(如 1001~1999),避免与系统用户冲突:
useradd -u 1001 -m -s /bin/bash alice - 生产环境禁用 root SSH 登录:在
/etc/ssh/sshd_config中设PermitRootLogin no,重启 sshd - 家目录权限设为 700,确保互不可见:
chmod 700 /home/alice
二、按职能建组,不塞进 wheel/sudo 大组
组不是“权限容器”,而是“职责边界”。把 dbadmins、webdeploy、auditors 等功能组分开,主组统一设为 users,附加组不超过 5 个。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 新建组:
groupadd dbadmins && groupadd webdeploy - 加人不覆盖原有组:
usermod -aG dbadmins,webdeploy alice - 组内权限不自动生效,后续通过 sudoers 或 ACL 显式赋予
三、sudo 权限精确到命令路径和参数
sudo 不是“给 root”,而是“授权执行某条命令”。所有规则写入 /etc/sudoers.d/ 下独立文件,用 visudo -f 编辑,避免语法错误锁死系统。
- 只允许重启 nginx:
%webdeploy ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx - 只允许查特定数据库日志:
alice ALL=(postgres) /usr/bin/psql -U appdb -c "SELECT * FROM logs LIMIT 10;" - 禁止危险命令:
! /bin/sh, ! /usr/bin/python*, ! /usr/bin/perl - 启用定向日志:
Defaults logfile="/var/log/sudo-web.log"
四、目录级权限用 ACL 补足,支持继承
当 sudo 控制不了文件读写、或需要多人协作编辑同一项目目录时,ACL 是唯一可靠方案。它不改属主属组,就能单独授权,还能自动继承。
- 确认文件系统已启用 ACL:
dumpe2fs -h /dev/sdXn | grep "Default mount options",含acl即可 - 给用户单独读写某目录:
setfacl -m u:alice:rwX /srv/project-alpha(大写 X 更安全) - 设默认 ACL 实现新建文件自动继承:
setfacl -d -m g:webdeploy:rwX /srv/project-alpha - 查看是否生效:
getfacl /srv/project-alpha,末尾带+且输出含user:alice或group:webdeploy即成功










