CentOS7.7系统root用户无法删除/etc/pam.d目录下文件问题排查求助
CentOS 7.7 root用户无法删除/etc/pam.d目录下文件排查方案
已知报错信息
执行删除命令时报错:
rm -f /etc/pam.d/2.txt rm: cannot remove ‘/etc/pam.d/2.txt’: Permission denied
已完成的排查项均排除了常见权限问题:
- 路径所有层级目录、目标文件权限均符合root操作要求
- SELinux已关闭,无额外ACL规则
- 目录与文件均未设置不可变、仅追加等特殊属性
- /etc/pam.d重命名为pam.dd后,内部文件可正常删除
核心排查方向
该现象的核心特征是仅/etc/pam.d路径下的操作被拦截,重命名后恢复正常,说明拦截规则是绑定/etc/pam.d这个固定路径实现的,优先排查以下点:
1. 检查目录是否被单独挂载
部分场景下/etc/pam.d可能被作为只读挂载点绑定,重命名后脱离挂载限制,执行命令验证:
mount | grep /etc/pam.d
如有输出说明该目录被单独挂载,卸载或修改挂载权限即可解决。
2. 排查主机安全防护软件拦截
EDR、HIDS、云服务商自带的主机安全组件、开源防护工具(如安全狗、云锁)默认会保护PAM这类身份认证核心配置路径,禁止修改、删除内部文件,且通常不会拦截目录重命名操作。
执行如下命令排查相关进程:
# 排查安全类内核模块 lsmod | grep -E 'lkrg|sec|edr|hids|yunsuo|safedog|qax|360' # 排查运行中的安全类进程 ps aux | grep -E 'edr|hids|safedog|yunsuo|titan|sec|hostdef'
找到对应进程后临时停止,再测试删除操作即可验证。
3. 排查fanotify文件系统监听拦截
部分自定义防护脚本、安全工具会通过fanotify监听全局文件操作,对/etc/pam.d路径的修改做强制拦截,执行命令排查:
lsof | grep fanotify
临时解决方案
若暂时无法定位拦截源,可通过重命名目录绕过限制完成操作:
mv /etc/pam.d /etc/pam.tmp # 执行文件删除、修改操作 rm -f /etc/pam.tmp/2.txt # 操作完成后改回原目录名 mv /etc/pam.tmp /etc/pam.d
内容的提问来源于stack exchange,提问作者谭应科
相关产品推荐
相关产品推荐

