讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 权限体系:实施代码运行时的权限限制(如 AppArmor)

梦伟酱_9213

梦伟酱_9213

发布时间:2026-08-07 08:19:19

|

474人浏览过

|

来源于php中文网

原创

AppArmor 是为填补传统 Unix 权限无法限制程序行为的空白而设计的进程级最小权限沙箱机制,它基于路径实施强制访问控制(MAC),需完成写 profile、加载到内核、验证生效三步才真正起作用。

linux 权限体系:实施代码运行时的权限限制(如 apparmor)

Linux 权限体系中,传统 Unix 用户/组权限(rwx)仅控制“谁可以访问什么”,但无法限制“一个程序能做什么”。AppArmor 就是为填补这一空白而设计的运行时权限限制机制——它不替代用户权限,而是叠加一层基于路径的强制访问控制(MAC),让代码在启动后只能碰明确允许的资源。

AppArmor 的核心定位:进程级最小权限沙箱

它不是全局开关,而是为每个可执行文件单独配策略。比如 /usr/bin/python3 和 /opt/myapp/server 可以拥有完全不同的规则集。策略生效前提是:内核模块已启用、profile 已加载、目标进程由该 profile 覆盖。它不管你是 root 还是普通用户,只看“这个二进制正在跑,它被允许干什么”。

三步落地:写、载、验

配置真正生效必须走完这三步,缺一不可:

linux-sysadmin
linux-sysadmin

Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...

下载
  • 写对 profile:放在 /etc/apparmor.d/ 下,文件名按路径转点(如 /usr/local/bin/worker → usr.local.bin.worker);开头加 #include <tunables/global>;规则末尾带逗号;路径用绝对路径;只放真实需要的条目(例如 /var/lib/myapp/** rwk,,而非 /var/** rwk)
  • 载入内核:用 sudo apparmor_parser -r /etc/apparmor.d/usr.local.bin.worker(-r 表示替换已有规则);若报语法错,用 sudo apparmor_parser -t /etc/apparmor.d/usr.local.bin.worker 先试运行检查
  • 验证生效:运行 sudo aa-status 确认该 profile 在 “enforce mode” 列表中;再查 sudo dmesg | grep -i "apparmor.*denied",有日志说明它真在拦;没日志且服务正常,大概率已按预期工作

关键权限项怎么设才安全

一份实用的 profile 不是堆功能,而是裁剪风险面:

  • 文件权限:显式允许必要路径(/run/myapp/sock w,),同时用 deny /etc/shadow r,、deny /home/** rwx, 封死常见提权入口
  • 网络控制:只开实际用的协议和类型,例如 network inet stream,(本地 TCP),禁用 network netlink raw, 防路由劫持
  • 能力(capability):默认全禁,只加必需项,如 capability setuid,、capability dac_override,(仅当程序确实需切换用户或绕过权限检查时才放开)

容器场景下不能只靠默认策略

Docker 默认用 docker-default profile,它宽松且通用。生产环境应为关键容器指定自定义 profile:

  • profile 文件名按容器内进程路径命名(如容器里跑 /app/main,文件名为 app.main)
  • Docker 启动时加 --security-opt apparmor=app.main
  • Kubernetes 中通过 annotation:container.apparmor.security.beta.kubernetes.io/<container-name>: localhost/app.main
  • 务必在 profile 中 deny 敏感路径:deny /proc/sys/** w,、deny /sys/firmware/** rwklx,、deny /dev/.lxc/* r,(防容器逃逸)

AppArmor 不复杂,但容易忽略验证环节。很多“权限没生效”的问题,其实只是 profile 没加载、或进程没被正确匹配到策略。盯住 aa-status 和 dmesg,比反复改配置更有效。

热门AI工具

更多
火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

3690

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3213

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2273

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

5470

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

5142

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3053

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2565

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2779

2023.07.25

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

160

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn