服务器用户权限管理核心在于分层建组、基于组配权限、sudoers.d分文件管控、禁root+SSH密钥守入口、ACL精准补位,全程遵循最小权限与可审计原则。
服务器用户权限管理不是配完账号就完事,核心是让“该用的人、在该用的时候、做该做的事”,同时留下可查的操作痕迹。关键不在功能多全,而在逻辑清晰、执行可控、变更可溯。
别一上来就给账号加 sudo。先按职责划出基础层级:
创建组后,用 usermod -aG 组名 用户名 加入成员。所有权限后续都基于组来配,不单独动用户。
直接改 /etc/sudoers 风险高,一行语法错就可能锁死 sudo。推荐做法:
/etc/sudoers.d/ 下新建文件,比如 01_ssh_ops
%ssh_ops ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx, /usr/bin/journalctl -u app*
sudo visudo -c 检查语法,再 sudo systemctl reload sshd(如需)或 sudo systemctl restart sshd
这样每类权限独立成文件,删改不影响其他组,也方便版本管理和交接。
权限再细,入口没卡住等于白做:
/etc/ssh/sshd_config,确认三行生效:PermitRootLogin no
PasswordAuthentication no
AllowGroups ssh_ops ssh_dev
~/.ssh/authorized_keys,私钥本地保管sudo systemctl restart sshd,然后从另一终端验证能否登录,再关原连接避免用 AllowUsers 列长名单,组方式更易维护,尤其人员变动频繁时。
标准 rwx 有时不够用。比如要让开发能读日志、但不能删,又不想开全局读:
sudo setfacl -m u:dev01:r /var/log/app.log
sudo getfacl /var/log/app.log
ACL 不替代主权限,而是精准打补丁。日常目录仍用 chown 和 chmod 管主干权限。