用find查找敏感权限文件是审计,chmod仅用于修复;应查world-writable、SUID/SGID、私钥及.ssh权限等高风险项,输出结构化报告并人工复核后最小权限修复。
直接用
配合
做“全盘敏感文件权限审计”存在根本性误解:chmod 是修改权限的命令,不是审计或检测工具。真正可行的是用
查找具有特定权限特征的文件(如 world-writable、SUID/SGID、过度开放的配置文件等),再结合
、
或专用工具做分析和报告,而非用 chmod 审计。
明确审计目标:找哪些“敏感权限模式”?
真正的权限审计关注以下高风险权限特征:
world-writable 文件或目录
(权限含
),尤其在系统路径下(如
、
)
SUID/SGID 可执行文件
(如
或
),可能被滥用提权
配置文件权限过松
(如
权限不是
或
)
私钥文件(.pem, .key)被非属主可读
(如
)
用户主目录下 .ssh 目录或密钥权限宽松
(如
)
安全、高效的 find 查找命令示例
以下命令均只查找,不修改;加
可增强可读性:
查所有 world-writable 普通文件:
查 SUID 程序(排除常见合法项如
,
后人工复核):
查
下非 root 可写的配置文件:
查所有私钥文件且组/他人可读:
查用户家目录中不安全的 .ssh 内容:
为什么不能用 chmod 做“审计”?
的作用是变更权限,执行它本身会改变系统状态,违反审计“只读、不可侵入”的基本原则。例如:
—— 这是批量修复,不是审计
若误加
或路径错误,可能破坏系统关键文件(如
被改权限将导致无法提权)
审计必须保留原始状态供溯源、取证、合规检查;修改即失真
推荐的审计输出与后续动作
把 find 结果结构化输出,便于分析和跟踪:
保存为时间戳报告:
用
补充详细上下文(如属主、SELinux 上下文):
对高风险结果,用
、
或
辅助判断内容敏感性(如是否含密码、密钥片段)
真正需要修复时,应逐个验证、记录原因,并使用最小权限原则调整(如
)
findchmodfindls -lstato+w/etc/var/log-perm -4000-perm -2000/etc/shadow000600-name "*.pem" -perm /o+r~/.ssh/* -perm /7-print0 | xargs -0 ls -ldfind / -xdev -type f -perm -2 -ls 2>/dev/nullsudopasswdfind / -xdev -type f -perm -4000 -ls 2>/dev/null/etcfind /etc -type f ! -user root -perm /o+w 2>/dev/nullfind / -xdev \( -name "*.key" -o -name "*.pem" -o -name "id_rsa" \) -perm /go+r 2>/dev/nullfind /home -maxdepth 3 -path "*/.ssh/*" -perm /7 -ls 2>/dev/nullchmodfind / -perm -2 -exec chmod o-w {} \;-R/usr/bin/sudofind / -xdev -perm -4000 2>/dev/null | xargs -r ls -ld > suid_audit_$(date +%F).txtstatfind /etc -name "*.conf" -perm /o+r -exec stat -c "%n %U:%G %A %C" {} \;filestringsgrepchmod 600 /etc/myapp.conf