尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
如何用 mise exec 的 sandboxing 参数限制子命令的网络与文件写入?
如何用 mise exec 的 sandboxing 参数限制子命令的网络与文件写入【免费下载链接】misedev tools, env vars, task runner项目地址: https://gitcode.com/GitHub_Trending/mi/mise当你用mise exec运行构建脚本或来源不完全可信的命令时可能不希望它访问网络、也不希望它往输出目录之外写文件。mise 的 sandboxing 功能可以为mise exec和mise run启动的子命令施加操作系统级别的限制阻断网络、限定可写入的文件系统路径、过滤环境变量。这些限制由宿主 OS 强制Linux 使用 Landlock 与 seccomp-bpfmacOS 使用 Seatbelt适用于 Linux 与 macOSWindows 上不执行文件与网络限制mise 只给出警告并照常运行不要把它当成策略已生效的证据。沙箱只作用于子命令本身。mise 的配置求值、工具安装等准备工作发生在沙箱之外对不受信任的项目配置文档建议另行启用 safe mode。前置条件已安装 misemise --version可执行并且子命令依赖的工具已在项目中配置好。文档示例以 Node 为例即项目里已安装 Node运行平台为 Linux 或 macOS。Linux 的文件系统沙箱依赖 LandlockLinux 5.13 起可用若 Landlock 不可用或无法施加文件系统限制命令会直接失败而不是降级运行用--分隔 mise 的 sandboxing 参数与真正的子命令例如mise exec --deny-net -- npm run build。用 CLI 参数阻断网络与写入任何--deny-*或--allow-*标志都会启用对应类别的限制。文档给出的最短路径在一个已安装 Node 的项目中# 阻断本地构建的网络访问 mise exec --deny-net -- npm run build # 只允许写入已存在的输出目录加上隐式系统例外路径 mkdir -p dist mise exec --allow-write./dist -- npm run build # 拒绝读、写、网络和非必要环境变量再放行本项目读取与输出目录写入 mise exec --deny-all --allow-read. --allow-write./dist -- node build.js三条命令分别对应只需要断网、只需要限定写目标、以及最小权限组合。npm run build需要项目里有buildscript最后一条命令需要存在build.js允许的路径要按你的构建实际用到的文件和缓存调整。注意--deny-all仍保留下文列出的隐式访问它不是一个空文件系统的容器。mise exec别名mise x与mise run支持的 sandboxing 参数参数作用--deny-all同时阻断读、写、网络与环境变量--deny-read阻断文件系统读取系统库和工具目录仍可访问--deny-write阻断写入隐式临时/设备路径除外--deny-net阻断全部网络访问--deny-env阻断环境变量继承必要变量与显式例外仍可通过--allow-readpath只允许读取指定路径隐式对其他路径启用--deny-read--allow-writepath只允许写入指定路径隐式对其他路径启用--deny-write--allow-nethost在 macOS 上申请主机例外见平台限制Linux 上会被拒绝--allow-envvar放行特定环境变量隐式启用--deny-env支持通配符如--allow-envMYAPP_*只限制脚本写入、或给make build做网络隔离这类单参数用法mise x --deny-write -- bash script.sh mise x --deny-net -- make build理解隐式访问避免策略配过头文件系统限制生效时以下路径始终保持可访问保证工具能正常工作摘自 sandboxing 文档始终可读Linux 系统路径/usr、/lib、/lib64、/bin、/sbin、/etc、/dev、/proc、/sys、/tmp、/nix、/snap、/home/linuxbrewmacOS 系统路径/System、/Library、/usr、/bin、/sbin、/dev、/etc、/var/run、/tmp、/private/tmp、/private/etc、/private/var/run、/opt/homebrew、/nixmise 数据目录配置中的MISE_DATA_DIR而不仅仅是单个工具二进制。始终可写/tmpmacOS 上还有/private/tmp、/dev/dev/null、/dev/tty等。此外--allow-write的路径隐式可读--allow-read的路径包含上述系统必需项。启用环境变量过滤时PATH、HOME、USER、SHELL、TERM、COLORTERM、LANG仍可用即使加了--deny-netUnix socket 依然可用。也就是说配--allow-write./dist时你只需要考虑项目内的写目标系统路径不需要逐一放行。平台差异与必须知道的限制Linux文件系统限制用 Landlock网络限制用 seccomp-bpf只拦截 inet socket 创建Unix socket 放行按主机过滤不支持--allow-nethost在 Linux 上会被拒绝mise 在启动子命令之前就返回错误不会静默放行全部网络。需要断网就用--deny-net需要网络就去掉网络限制允许的路径在沙箱构建时必须已存在。Landlock 把每条规则绑定到一个打开的文件描述符上尚未创建的路径无法被引用mise 会警告该规则被丢弃dropped rule。任务仍可能通过覆盖它的另一条规则例如允许了父目录访问该路径但被丢弃的规则本身不会带来任何权限。要让任务能创建新目录就放行一个已存在、且包含它的目录。文档示例mise.toml中的任务[tasks.install] run npm install allow_read [package.json, ~/.npm] # 不能写 [node_modules] —— 任务创建它之前它不存在 allow_write [., ~/.npm]Landlock 无法把创建限制到单个文件名因此放行包含目录就必然授予该目录内其他内容的写权限。此限制只影响 LinuxmacOS 的 Seatbelt 规则是路径模式不要求路径存在。macOS沙箱基于sandbox-execSeatbelt与生成的 profile--allow-nethost的例外在构建 profile 时把主机名解析为 IP策略允许的是这些 IP 而不是某个 HTTP 主机名或 URL 路径共享同一 IP 的服务也可能可达sandbox-exec可能以host must be * or localhost in network address拒绝生成的主机例外 profile。此时子命令无法启动mise 不会回退到无限制网络。若需要访问特定主机而--allow-net表达不出来文档建议在你的 macOS 版本上验证策略并在必要时用外部网络控制手段。Windows文件系统与网络沙箱均不受支持。mise 会给出警告并按原样运行命令——带 sandboxing 参数成功执行不代表策略被强制执行。可选把限制设为默认或任务策略全局默认在配置中开启[settings.sandbox]让每次mise exec/mise run默认带 deny 规则可选项[settings.sandbox] deny_all true可用设置与 deny 参数一一对应deny_all、deny_read、deny_write、deny_net、deny_env。任务与 CLI 参数仍可按需追加allow_read、allow_write、allow_net、allow_env例外。任务级声明在mise.toml的任务定义里直接写限制任务路径相对任务的工作目录CLI 参数相对调用 mise 的目录CLI allow 列表是在任务策略之上追加例外而非替换[tasks.build] run npm run build deny_net true allow_write [./dist] [tasks.lint] run npm run lint deny_write truemkdir -p dist mise run build各任务级字段的类型、默认值与说明见 task configuration 文档。如何判断策略是否生效文档没有给出固定的“成功日志”可以核对的是以下几处明确行为Landlock 不可用时命令直接失败在 Linux 上如果文件系统限制无法施加命令不会静默降级会以失败结束——此时应先解决内核/Landlock 问题而不是移除限制Linux 上--allow-net在启动前报错看到执行前的错误信息说明主机过滤被拒绝属于预期行为被丢弃的规则会收到警告在 Linux 上引用了尚不存在的路径时mise 会警告该规则被 dropped此时需要按“允许已存在目录”的方式改写路径macOS 主机例外被拒绝时若出现host must be * or localhost in network address说明 profile 被sandbox-exec拒绝子命令没有运行也不存在“回退到无网络限制”的情况Windows 上若看到 sandboxing 不受支持的警告说明文件与网络限制实际未生效应换到 Linux/macOS 环境验证策略。对写入阻断的直观核对方式与文档一致把输出目录之外的写入留给 OS 拒绝例如mise exec --deny-all --allow-read. --allow-write./dist -- node build.js中build.js若尝试写./dist之外的文件将由系统拒绝而不是被 mise 拦截记录。边界说明沙箱不覆盖 mise 自身的配置求值与工具安装处理不受信任配置请用 safe modeMISE_SAFE1包管理器如 npm可能访问额外主机并在输出目录外写缓存或 lockfile文档建议只放行命令实际需要的资源允许通配符环境变量如NODE_*、npm_*会同时暴露匹配到的凭据或运行时选项需要更窄策略时列出精确变量名。以上限制全部依据 Sandboxing 文档mise exec的完整参数与--用法见 mise exec 命令文档任务级 sandboxing 字段参考 task configuration。【免费下载链接】misedev tools, env vars, task runner项目地址: https://gitcode.com/GitHub_Trending/mi/mise创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

如何使用自定义 NDK/SDK 从源码构建 KOReader Android 包(android-arm64 等目标)

如何使用自定义 NDK/SDK 从源码构建 KOReader Android 包(android-arm64 等目标)

如何使用自定义 NDK/SDK 从源码构建 KOReader Android 包(android-arm64 等目标) 【免费下载链接】koreader An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and…

📅 2026/9/12 4:02:20
QA Report — [URL] — [timestamp]

QA Report — [URL] — [timestamp]

QA Report — [URL] — [timestamp] 【免费下载链接】ECC The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. 项目地址: https://gitcode.co…

📅 2026/9/12 3:57:20
汽车行业数字化转型:战略框架与关键技术解析

汽车行业数字化转型:战略框架与关键技术解析

1. 汽车行业数字化转型的战略价值与现状分析汽车产业正经历百年未有的技术变革浪潮。根据麦肯锡最新研究数据,全球汽车行业数字化投入年均增长率达到17%,远超传统研发投入增速。这种转型并非简单的技术叠加,而是从产品形态、商业模式到组织架…

📅 2026/9/12 3:57:20
MORE NEWS

更多资讯

📰

农场管理系统开发:Flask与Django技术选型实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

在 .NET 中使用 Semantic Kernel 集成 AWS Bedrock Agent:环境准备、配置与七个实战示例

在 .NET 中使用 Semantic Kernel 集成 AWS Bedrock Agent:环境准备、配置与七个实战示例 【免费下载链接】semantic-kernel Integrate cutting-edge LLM technology quickly and easily into your apps 项目地址: https://gitcode.com/GitHub_Trending/se/semanti…

📰

Text-to-CAD实战:用自然语言一句话生成可编辑三维模型

前阵子同事在群里甩过来一句话:帮我画一个M8外六角螺栓,两头倒角,长度40。换作以前,我得打开CAD,新建文件,切视图,画六边形,拉伸,再切出螺杆和倒角,少说也要十…

📰

中小企业管理软件的关联输入功能设计与实现

1. 项目背景与核心需求 《看潮企业管理软件》是一款面向中小企业的综合管理解决方案,这个编号为03-008的开发模块聚焦于"关联输入"功能的实现。在实际企业管理中,数据关联性往往比单一数据录入更重要——采购订单需要关联供应商信息&#xff0…

📰

大模型任务系统架构设计与JSON Schema驱动开发实践

1. 项目概述:大模型任务系统核心架构解析在Claude Code第七课Task System任务系统的学习中,我们接触到现代大模型开发中最关键的架构设计范式。这套系统本质上是通过JSON Schema驱动的任务编排引擎,实现了从结构化数据到实际操作的智能映射。…

📰

YOLO目标检测工程实战:从原理拆解到工业部署避坑指南

1. 这不是“科普文”,是目标检测工程师的入门第一课:从YOLO标题里挖出真问题你点开这个标题,大概率不是想听“目标检测就是识别图中有什么物体”这种教科书定义。你真正卡住的地方,可能是:标注完500张图,训…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬