首页/系统与基础设施/自动化运维速查/权限不足与提权失败排查
排障与安全50 条

权限不足与提权失败排查

权限不足要按四类原因分开查:文件权限位与属主、进程能力、强制访问控制策略、存储层只读或身份映射;报错措辞与证据位置一一对应,先确定运行身份再逐级核对路径权限是最快的路径。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌‌​​‌‌​‌‌‌​‌​‌​‌‌​​‌‌​​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​‌​​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​‌‌​‌​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌​‌‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

先分清是哪种权限问题

「权限不足」是一句笼统的描述,底层至少四类原因:文件或目录的属主与权限位不够、进程缺少必要的特权能力、强制访问控制策略拦住了、以及存储层本身只读。它们的报错措辞不同、证据位置也不同,混在一起排查会来回兜圈子。有效的做法是先读懂报错用词——是被拒绝还是不被允许——再按对应的证据源去看,通常一步就能定位到层次。

基本信息

适用对象Linux 与类 Unix 系统上的命令执行与服务运行
报错用词被拒绝多为权限位或属主问题,不被允许多为能力或策略问题
证据位置文件属性、内核审计日志、挂载状态、服务运行身份
提权工具sudo 与替代工具,规则由配置文件集中定义
权限要求查看审计日志与修改提权规则需 root

分类型判据

  • 目录路径权限:中间目录缺执行位时,文件本身可读也依然进不去,要沿路径逐级看
  • 扩展权限列表:在传统权限位之外另有授权项,权限位看起来一致但结果不同
  • 不可变属性:文件被标记为不可修改,即使 root 也会被拒绝写入
  • 进程能力缺失:以非特权用户运行的服务无法绑定低位端口或执行特定操作
  • 强制访问控制:策略拒绝会在内核审计日志里留下明确的拒绝记录
  • 存储层限制:挂载为只读或共享存储做了身份映射,写入必然失败

取证命令

取证命令
id                                # 当前用户与所属组,确认身份前提
namei -l /var/lib/app/conf/app.conf  # 沿路径逐级检查每一层的权限
lsattr /etc/app.conf              # 查看不可变等文件属性
sudo -l                           # 当前用户被允许执行哪些命令
getfacl -m u:ops:rx /srv/data     # 查看与设置扩展权限项
mount | grep ' ro,'               # 找出只读挂载点
dmesg | tail -20                  # 内核层面的拒绝通常先出现在这里
journalctl -k | grep -i denied | tail -20  # 策略拒绝的审计记录

报错与层次

报错措辞所属层次证据位置
权限被拒绝文件权限位或属主路径逐级权限与扩展权限项
不允许该操作能力或内核限制进程能力、内核审计日志
只读文件系统挂载或存储层挂载选项与存储侧映射
命令不在授权列表提权规则提权规则列表与授权配置
策略拒绝强制访问控制审计日志中的拒绝记录
排查权限问题要固定在同一个身份上下文里做:以交互终端验证通过、放到服务或定时任务里失败,多半是运行身份或环境不同,而不是权限本身变了。先确认「谁在跑」,再确认「它能做什么」。
用放宽权限位或关闭强制访问控制来「先跑通」,会在生产上留下长期敞口:目录一旦对所有人可写,任何本地账号都能篡改配置与程序。应急放行后应立刻收回,并改用以最小范围授权的方式解决。

易错点

  • 只看目标文件权限:中间目录缺执行位导致无法访问,单看文件属性会误判为权限正常
  • 忽略不可修改属性:root 也改不动的文件往往是被加了属性锁,删掉属性才能改
  • 用关闭策略的方式应急:策略关闭后攻击面长期敞开,也很难确认何时能收回
  • 交互能跑、服务不能跑:运行身份不同才是根因,应把身份与权限一起核对
  • 共享存储上按本地权限推理:存储侧的身份映射规则可能完全改变实际访问结果

数据来源与参考

  • Linux 手册页:ls(1)、lsattr(1)、getfacl(1)
  • Linux 手册页:capabilities(7)
  • SELinux 官方文档:拒绝记录与审计

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/insufficient-permission-escalation-failure.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌‌​​‌‌​‌‌‌​‌​‌​‌‌​​‌‌​​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​‌​​‌​‌‌​​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​‌‌​‌​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌​‌‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​​​​‌​‌‌​‌​​‌​‌‌​‌‌​​​‌‌‌​‌​‌​‌‌‌​​‌​​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​