跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

如何使用Find命令配合Chmod实现全盘敏感文件权限审计

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

相关文章