linux账号安全核心是最小权限原则,需清理非必要账号、限制登录时段与会话数、用 ACL 精细控制文件权限、以 sudo 替代 su 并审计日志。

Linux 账号安全和访问权限控制,核心是“最小权限原则”——只给用户完成任务必需的权限,不多也不少。实际操作中,重点不在功能 堆砌,而在策略清晰、配置可靠、日志可查。
清理与锁定非必要账号
系统默认会创建大量服务账户(如 daemon、ftp、mai l 等),它们通常不需要登录能力。放任不管可能成为攻击入口。
- 把非交互式用户的 shell 设为 /sbin/nologin 或/usr/sbin/nologin:usermod -s /sbin/nologin username
- 长期不用的账号直接锁定密码:passwd -l username(会在 /etc/shadow 中密码字段前加!)
- 确认关键账号文件不可被普通用户修改:chattr +i /etc/passwd /etc/shadow(需 root 执行;解锁用chattr -i)
限制用户能做什么:从登录到命令执行
光管“能不能登”,不如管“登上去能干啥”。这需要分层控制:
- 登录时段控制:编辑/etc/security/time.conf,例如
sshd;*;devuser;!Al0900-1700 → devuser 只能在工作时间通过 SSH 登录 - 并发 会话数限制 :在/etc/security/limits.conf 中添加
devuser hard maxsyslogins 2 → 同一用户最多 2 个活跃登录会话 - 命令历史与自动登出 :
设置HISTSIZE=50 和TMOUT=600(写入/etc/profile),让终端闲置 10 分钟自动退出,且不保留过多命令记录
精细控制目录与文件访问
传统 rwx 权限太粗,尤其多人协作时。ACL(访问控制列表)是更实用的选择:
- 启用 ACL 支持(多数现代发行版默认开启),检查挂载选项:
mount | grep “$(df . | tail -1 | awk ‘{print $1}’)” | grep acl - 给特定用户授予某目录的读写权限,不影响原属组设置:
setfacl -m u:reporter:r-x /var/log/app/ - 设默认 ACL,让该目录下新建文件自动 继承 权限:
setfacl -d -m u:reporter:r-x /var/log/app/
用 sudo 替代 su,明确授权边界
su 容易导致权限泛滥,sudo 则可精确到命令级,并全程留痕:
- 禁止普通用户直接 su 到 root,只允许通过 sudo 执行指定操作
- 用 visudo 编辑/etc/sudoers,例如:
%ops ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /bin/journalctl -u nginx - 所有 sudo 操作默认记录在 /var/log/secure 或/var/log/auth.log,定期检查异常调用
基本上就这些。不复杂但容易忽略的是:每改一项,都建议先在测试账号上验证,再批量应用;所有关键配置变更,最好配合 auditd 或至少开启 PAM 日志,确保行为可追溯。