Linux防止普通用户越权读取数据的核心是构建多层权限防线:以UID/GID身份隔离定边界,用rwx文件权限控访问,再辅以ACL、挂载选项加固、chattr锁定及auditd审计兜底。

Linux 系统中防止普通用户越权读取数据,核心不是“锁死所有路径”,而是构建多层权限防线:用身份隔离定边界、用文件权限控访问、用额外机制堵漏。普通用户默认无法读取他人数据,前提是系统配置未被弱化。
用 UID/GID 和基础权限划清身份边界
每个用户有唯一 UID,进程和文件都绑定 UID/GID。系统在访问时先比对身份,再查权限位:
- 确保敏感目录(如 /home/otheruser、/var/log/app)属主为对应用户,属组合理,权限设为 700(目录)或 600(文件)
- 避免将普通用户加入 root、adm、disk 等高权限组
- 新建用户时禁用 shell(/sbin/nologin)并设独立主目录,防止误共享
用 ACL 实现单用户级精准禁止
标准权限只分三类(所有者/属组/其他),ACL 可直接针对特定用户收放权限,更灵活可靠:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 禁止某用户读取日志:sudo setfacl -m u:unwanted_user:--- /var/log/app.log
- 让非属组用户临时可读:sudo setfacl -m u:reporter:r /data/summary.csv
- 设置默认 ACL,使该目录下新建文件自动继承限制:sudo setfacl -d -m u:unwanted_user:--- /sensitive
加固关键路径与挂载选项防绕过
即使路径被猜中或注入,也要让读取行为因权限不足而失败:
- 对 /tmp、/var/tmp 挂载时启用 noexec,nosuid,nodev,防上传执行或提权
- Web 服务根目录(如 /var/www/html)权限设为 750,属组为 www-data,且不把父目录(如 /var)权限放太宽
- 用 chattr +i 锁定绝对不可改的文件(如 /etc/shadow),连 root 也无法覆盖
启用审计与最小化服务权限作兜底
技术防线之外,让越权行为可发现、难隐藏:
- 开启 auditd 监控敏感路径读取:-w /etc/shadow -p r -k shadow_access
- Web 服务(Nginx/Apache)必须以专用低权用户运行(如 www-data),禁用 root 启动
- 数据库、应用配置文件权限设为 640,属组为对应服务组,避免配置泄露

















