Linux隐藏文件需重点审计~/.bash_history、~/.ssh/、~/.aws/credentials等路径,用find和grep定位权限过宽或含敏感词项,清理时应加固权限、禁用明文存储、定期扫描并自动化巡检。

Linux系统中隐藏文件(以点号.开头的文件或目录)常被忽视,却可能包含配置凭证、历史命令、临时缓存甚至明文密钥等敏感信息。权限审计与清理不是“删掉所有点文件”,而是识别风险项、验证访问控制、按需清除或加固。
哪些隐藏文件/目录最需关注
以下路径中的隐藏项在权限审计中应优先检查:
-
~/.bash_history、~/.zsh_history:可能记录数据库密码、API密钥等交互式输入 -
~/.ssh/:私钥文件(如id_rsa)权限必须为600,目录为700 -
~/.aws/credentials、~/.docker/config.json:云平台或容器凭证,常含长期有效Token -
~/.vimrc、~/.gitconfig:若配置了自动执行脚本或明文凭据,存在提权风险 -
/etc/.pwd.bak、/var/log/.old等非标准路径下的隐藏备份文件:易被遗漏,权限可能过于宽松
快速审计隐藏文件权限的实用命令
不依赖图形工具,用组合命令定位高风险项:
- 查用户主目录下权限过宽的隐藏文件:
find ~ -maxdepth 2 -name ".*" -type f -perm /o+w,g+w 2>/dev/null - 查所有隐藏目录及其权限和属主:
find /home -maxdepth 3 -name ".*" -type d -ls 2>/dev/null | awk '{print $3,$4,$11}' - 检查SSH私钥是否合规:
find ~/.ssh -name "id_*" -exec ls -l {} \; 2>/dev/null,确认输出中权限列含-rw------- - 搜索常见敏感关键字(谨慎使用,避免误伤):
grep -rI "password\|secret\|key\|token" ~/.bash* ~/.git* ~/.aws 2>/dev/null | head -20
安全清理与加固建议
清理≠盲目删除,重点是消除未授权访问面和冗余暴露点:
- 对
.bash_history,运行history -c && history -w清空当前会话并刷新文件;若需保留日志,应配置HISTCONTROL=ignorespace,并在输入敏感命令前加空格跳过记录 -
.ssh目录下,禁用不必要密钥,用ssh-keygen -p -f ~/.ssh/id_rsa为私钥添加密码短语;删除known_hosts中已下线主机条目 - 云凭证文件(如
.aws/credentials)应迁移到IAM角色或短期STS Token,确需本地存储时,用chmod 600 ~/.aws/credentials并确认属主为当前用户 - 禁用编辑器自动保存临时文件:在
.vimrc中添加set nobackup nowritebackup;Git中全局禁用.git/info/exclude外的忽略规则泄露 - 定期扫描新增隐藏项:
find /home -name ".*" -mtime -7,重点关注最近创建的隐藏文件,人工核查用途
自动化审计可集成到运维流程
将基础检查写入简单脚本,纳入登录欢迎信息或每日巡检:
- 创建
/usr/local/bin/audit-hidden.sh,包含上述关键find和ls命令,输出结果重定向至/var/log/hidden-audit.log - 用
logrotate管理该日志,保留7天;配合crontab每天凌晨运行一次 - 在
/etc/motd中加入提示:“检测到异常隐藏文件,请执行sudo audit-hidden.sh核查”(仅对管理员显示) - 生产环境建议结合
aide或tripwire监控/etc/.*和/root/.*等关键路径的变更

















