讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux敏感文件如何保护_权限与审计组合方案【教程】

大浩姑娘_1927

大浩姑娘_1927

发布时间:2025-12-21 22:12:08

|

870人浏览过

|

来源于php中文网

原创

Linux敏感文件权限加固需结合强制访问控制(SELinux/AppArmor)、审计追踪(auditd)与最小权限原则:设umask 077、/etc/shadow权限640并配shadow组、禁用敏感目录group/other执行权、启用MAC策略限制进程访问、配置auditd监控关键路径读写及属性变更、每日哈希校验与自动化权限扫描。

linux敏感文件如何保护_权限与审计组合方案【教程】

Linux系统中,敏感文件(如/etc/shadow、/etc/passwd、SSH密钥、数据库配置、环境变量文件等)一旦被未授权访问或篡改,可能直接导致权限失控、数据泄露甚至系统沦陷。单纯靠文件权限(chmod/chown)远远不够,必须结合强制访问控制、审计追踪与最小权限原则,构建纵深防御。

核心权限加固:不止是 chmod 600

基础权限设置是第一道门槛,但需注意细节:

  • 避免过度依赖 umask:用户创建文件时默认权限受 umask 影响,建议在/etc/profile或/etc/bash.bashrc中统一设为umask 077(新建文件默认仅属主可读写)
  • 敏感目录必须禁用 group/other 执行权:例如/etc/ssh应为drwx------(700),否则其他用户可能遍历其内容
  • shadow 文件需配合 shadow 组隔离:确保/etc/shadow属主为 root、属组为 shadow、权限为640,再将仅需读取的程序(如 login)加入 shadow 组,而非开放 world-readable
  • 使用 setgid 配合专用组管理配置目录:例如/opt/app/conf设为drwxr-s---,属组为 appconf,所有运维人员加入该组,避免直接给 root 权限

启用 SELinux 或 AppArmor 实现类型强制控制

传统 DAC(自主访问控制)无法阻止 root 进程越权读取。SELinux/AppArmor 提供 MAC(强制访问控制),按进程类型限制其能访问的文件类型:

Apache Superset Dashboard and SQL Exploration Skill
Apache Superset Dashboard and SQL Exploration Skill

Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。

下载
  • SELinux 示例:将 Web 应用配置文件标记为httpd_config_t,即使 Apache 以 root 运行,也无法读取标记为etc_t的普通配置文件
  • 快速启用(RHEL/CentOS):sudo setenforce 1临时开启,修改/etc/selinux/config中SELINUX=enforcing永久生效
  • AppArmor(Ubuntu/Debian):用aa-genprof为关键服务生成策略,重点限制其对/etc、/var/secrets等路径的访问能力
  • 不建议完全关闭:若因兼容性问题需禁用 SELinux,请至少启用 auditd 并强化日志监控

审计关键文件访问行为:auditd + rules 持续盯防

权限只是“门锁”,auditd 是“监控摄像头”。需精准审计敏感路径的读、写、执行、属性变更:

  • 添加持久化审计规则:编辑/etc/audit/rules.d/privileged.rules,加入:
-w /etc/shadow -p wa -k identity
-w /etc/passwd -p wa -k identity
-w /root/.ssh/ -p wa -k ssh_root
-w /home/*/\.ssh/ -p wa -k ssh_user
-w /etc/ssl/private/ -p wa -k ssl_private

其中-p wa表示监控 write 和 attribute change(如 chmod/chown),-k指定审计键名便于日志过滤。

  • 实时查看异常访问:sudo ausearch -k identity --start today | aureport -f -i
  • 对接 SIEM 或邮件告警:用audispd插件将匹配identity键的日志转发至日志服务器,或通过ausearch + awk + mail脚本触发即时通知

定期验证与自动化检查机制

人工检查易遗漏,需固化为周期任务:

  • 每日校验关键文件哈希:用sha256sum /etc/shadow /etc/passwd > /var/log/filehash.baseline,配合 cron 每日比对变化
  • 扫描非预期的 world-writable 敏感文件:find /etc /root /opt -type f -perm -o+w 2>/dev/null,发现即告警
  • 检查 SSH 密钥权限合规性:find /root /home -name "id_rsa" -o -name "id_dsa" -o -name "id_ecdsa" -o -name "id_ed25519" -exec ls -l {} \;,确保私钥权限≤600、公钥≤644
  • 集成进 CI/CD 或配置管理工具:Ansible 的file模块可声明式定义权限;SaltStack 可用file.managed自动修复偏差

热门AI工具

更多
DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

529

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1658

2024.03.01

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

2325

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

3641

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

2471

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

847

2023.09.05

vb中怎么连接access数据库
vb中怎么连接access数据库

vb中连接access数据库的步骤包括引用必要的命名空间、创建连接字符串、创建连接对象、打开连接、执行SQL语句和关闭连接。本专题为大家提供连接access数据库相关的文章、下载、课程内容,供大家免费下载体验。

2227

2023.10.09

数据库对象名无效怎么解决
数据库对象名无效怎么解决

数据库对象名无效解决办法:1、检查使用的对象名是否正确,确保没有拼写错误;2、检查数据库中是否已存在具有相同名称的对象,如果是,请更改对象名为一个不同的名称,然后重新创建;3、确保在连接数据库时使用了正确的用户名、密码和数据库名称;4、尝试重启数据库服务,然后再次尝试创建或使用对象;5、尝试更新驱动程序,然后再次尝试创建或使用对象。

2247

2023.10.16

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

80

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn