Linux核心服务配置文件权限检查脚本默认校验/etc/passwd(644)、/etc/shadow(600)、/etc/group(644或640)、/etc/ssh/sshd_config(600/644)、/etc/sudoers(440)、/etc/crontab及/etc/cron.d/下文件(600/644),使用stat命令获取权限,支持YAML自定义基线、JSON/CSV输出及自动修复。

Linux核心服务配置文件的权限设置直接影响系统安全性,自动化检查能快速识别越权配置,避免人为疏漏。
覆盖关键服务配置文件
脚本应默认检查以下高风险配置文件(路径可配置):
- /etc/passwd:权限应为 644(属主读写,组/其他只读)
- /etc/shadow:权限必须为 600(仅root可读写)
- /etc/group:建议 644,敏感环境可设为 640
- /etc/ssh/sshd_config:应为 600 或 644,禁止 646、666 等宽松权限
- /etc/sudoers:严格限定为 440(root:root),禁止 world-writable
- /etc/crontab 和 /etc/cron.d/ 下文件:均应为 600 或 644
权限校验逻辑清晰可靠
脚本使用 stat -c "%a %U:%G %n" $file 获取八进制权限、属主属组及路径,逐项比对预设基线。不依赖 ls -l 解析,避免字段错位风险。对不存在的文件给出明确提示,不中断整体扫描;对符号链接默认跳过(可加 --follow 参数启用解析)。
支持自定义基线规则,例如通过 YAML 文件定义:
/etc/myapp/config.conf:mode: "640"
owner: "myapp"
group: "myapp"
输出简洁可审计,支持多种格式
默认输出彩色终端报告,高亮异常项(如红色标出越权文件)。同时生成机器可读结果:
- --json:输出标准 JSON,含文件路径、当前权限、期望权限、是否合规、时间戳
- --csv:适合导入 Excel 或 SIEM 系统做长期趋势分析
- --fix(需 root):自动修复权限和属主(仅对预设白名单路径生效,防止误操作)
轻量集成与定时运行
脚本为单文件 Bash(兼容 POSIX sh),无外部依赖,可直接部署到各类 Linux 发行版。推荐通过 systemd timer 或 cron 每日执行,并将结果推送至日志中心或邮件告警。示例 cron 条目:
0 2 * * * /usr/local/bin/check-core-perms.sh --json >> /var/log/perm-audit.jsonl 2>&1

















