Linux:是否可以对共享库代码进行沙箱处理

2023-12-19

我有一个需要通过加载共享库来扩展的进程。有没有一种方法可以在沙箱环境(外部进程除外)中运行共享库代码,以便在出现段错误时不会使进程崩溃,并且对可以分配的内存量、可以使用的 CPU 周期有限制, ETC。


我认为没有一种干净的方法可以做到这一点。你可以尝试:

  • 捕获段错误并从中恢复(棘手,特定于体系结构,但可行)
  • 将库的 malloc/calloc 调用替换为可计算分配空间的检测版本(如何通过代码替换默认的malloc https://stackoverflow.com/questions/14168388/how-to-replace-default-malloc-by-code)
  • 或者使用 malloc 钩子(http://www.gnu.org/software/libc/manual/html_node/Hooks-for-Malloc.html http://www.gnu.org/software/libc/manual/html_node/Hooks-for-Malloc.html)
  • CPU 周期占整个过程的一部分,因此我认为没有任何方法可以仅获取库的信息。唯一可行的选择 - 手动测量代码进行的每个库调用的刻度。

从本质上讲,尝试这会很有趣,但我建议您采用单独的进程方法并使用 RPC、配额、ulimit 等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux:是否可以对共享库代码进行沙箱处理 的相关文章

  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • 如何根据标签将单个 XML 文件拆分为多个

    我有一个带有标签的 XML 文件 我想像这样分割文件
  • 在 Mono 上运行 .Net MVC5 应用程序

    我正在 Windows 上的 Visual Studio 2013 中开发 Net 4 5 1 MVC5 应用程序 现在我想知道 是否可以在Linux Ubuntu 12 04 上运行这个应用程序 可以使用OWIN吗 Owin 可以自托管运
  • 内核的panic()函数是否完全冻结所有其他进程?

    我想确认内核的panic 功能和其他类似kernel halt and machine halt 一旦触发 保证机器完全冻结 那么 所有的内核和用户进程都被冻结了吗 是panic 可以被调度程序中断吗 中断处理程序仍然可以执行吗 用例 如果
  • 如何在 Linux 中使用 C 语言使用共享内存

    我的一个项目有点问题 我一直在试图找到一个有据可查的使用共享内存的例子fork 但没有成功 基本上情况是 当用户启动程序时 我需要在共享内存中存储两个值 当前路径这是一个char and a 文件名这也是char 根据命令参数 启动一个新进
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • 同源请求会导致“Access-Control-Allow-Origin 不匹配”错误,尽管来源当然匹配。注意:具有带“沙箱”的 CSP 策略

    当 的时候exact sameCORS 及其网页的 URL 都使用了 URL 但我在 Firefox 开发控制台中仍然收到相同的错误消息 浏览器控制台消息为 Cross Origin Request Blocked The Same Ori
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https
  • 如何wget目录中最新的文件

    我想编写一个 bash 脚本来下载并安装最新的每日构建程序 RStudio 是否有可能使wget仅下载目录中最新的文件http www rstudio org download daily desktop http www rstudio
  • 在 C 中运行 setuid 程序的正确方法

    我有一个权限为4750的进程 我的Linux系统中存在两个用户 root 用户和 appz 用户 该进程继承以 appz 用户身份运行的进程管理器的权限 我有两个基本惯例 void do root void int status statu

随机推荐

  • 在 Android 项目中处理 AWS 凭证的正确方法是什么?

    我需要在我的 Android 应用程序中连接到 Amazon 的 SimpleDB 亚马逊提供的示例项目安卓软件开发工具包 http aws amazon com sdkforandroid 将凭证放置在名为 AwsCredentials
  • 如何动态更改 ElasticSearch 的同义词

    我的同义词存储在数据库中 当数据库中的同义词发生更改时 我想更新索引中可能因同义词更改而更改的任何值 我能想到的有两个部分 第一 找出要重新索引的文档 第二 弄清楚如何告诉 ElasticSearch 同义词已更改 我正在努力解决第二个问题
  • 在 C# 中用新音频覆盖 mp4/wmv 视频的音频内容

    我有一个视频剪辑和一个音频剪辑 我想将音频放在视频的一部分上 双方的起点一致 但视频稍长 我想最好用 C 来做到这一点 有人知道我该怎么做吗 我想批量处理大量短片 10 12 分钟的剪辑 因此需要将其写入代码中 谢谢您的帮助 egon 您的
  • 我可以从应用程序内启动系统 PIN 身份验证吗?

    是否可以在我的应用程序中创建身份验证 以使用设备锁定 PIN 码验证用户 是否有意图机制或类似机制提示用户输入 PIN 码 我见过DevicePolicyManager 但我无法想出 有什么结论吗 从Android 5 0开始 您可以使用K
  • Rails Devise CakePHP 的旧用户

    我最近让 Devise 开始工作 新用户登录 注册 注销等都很好 然而 老用户有一个问题 我已经得到了 401 未经授权的地步 在我看来 登录时创建的哈希值不正确 当然也没有正确匹配 我的用户模型 class User lt ActiveR
  • 使用 Maven 和 postgres-db 运行 liquibase 时出现问题

    我在 postgresql db 上运行 Maven 的 liquibase plugin 时遇到问题 当尝试从命令行运行 liquibase update 时 我收到错误消息 ERROR Failed to execute goal or
  • 代码签名错误:捆绑包格式无法识别、无效或不合适

    我正在开发 iOS 应用程序 Swift 语言 iOS8 Xcode 6 1 它在 iPad 上运行良好 然后我向项目添加了 资源 文件夹引用 之后我收到代码签名错误 Resource 文件夹包含一些 HTML 文件 我不确定此文件夹引用是
  • 为什么当我第一次在系统中运行 React js 项目时收到此错误消息?

    当我跑步时npm start 我收到此错误消息 来自 chokidar C 的错误 错误 EBUSY 资源繁忙或锁定 lstat C hiberfil sys 来自 chokidar C 的错误 错误 EBUSY 资源繁忙或锁定 lstat
  • Intellij:如何复制/粘贴文件以复制它?

    我似乎找不到办法做到这一点 我在某个文件夹中有一个名为 X 的文件 我想在同一目录中创建具有相同内容的 Y 我在eclipse中的做法是选择文件并 C P eclipse提示输入新名称 UPDATE 显然 只有当编译单元包含多个类型时才会出
  • 您如何看待 TFS 中版本的更改?

    我正在尝试从 VSS 迁移到 TFS 并且需要能够显示在两个版本之间签入了哪些文件 在 VSS 中 我们只需标记发布的代码并查看标签之间的历史记录 并生成报告以显示签入和评论 有没有办法用 TFS 获得类似的结果 或者显示两个变更集或标签之
  • ATLANTBH jmeter-components:JSON 路径断言

    我正在尝试使用执行 JSON 断言ATLANTBH https github com ATLANTBH jmeter componentsjmeter JSON 路径断言 但是 我似乎无法编写正确的表达式来从下面发布的 JSON 提要中获取
  • Android - 使用 Glide/Picasso 从网站 URL 加载缩略图

    我正在尝试使用 Glide 加载网络上一篇文章的缩略图 但它返回一个空字段 与其他示例不同 此 URL 不直接链接到 PNG JPG 等等 而是一个网站链接 我需要它加载 默认缩略图 ImageView 已正确设置并初始化 我曾分别尝试过使
  • jQuery 可拖放定位

    我正在使用 jquery UI 和 jQuerydraggable 我所有的draggables都使用jqueryclone助手并附加可拖动的 to 可丢弃的 这是我的代码 squeezePage droppable droppable t
  • 如何检查是否安装了 gem?

    我为 Sinatra 项目安装了 data mapper 好奇 为什么我这样做的时候会这样gem install brew I can which brew并获取其位置的路径 但不能用于 data mapper 这适用于某些宝石 但不适用于
  • 提供基于泛型类型集合的泛型键比较

    我已经创建了自己的InsertOrUpdate 一些类型的实现如下 public IEnumerable
  • 如何将Web API添加到现有的ASP.NET MVC(5)Web应用程序项目中?

    假设您在创建新的 MVC 5 项目时忘记勾选 Web API 复选框 将其添加到项目中 那么您需要做什么来添加 Web API 并使其正常工作 有很多迁移问题 但似乎没有一个具有将 Web API 添加到 MVC 5 项目的完整且最新的步骤
  • Swagger UI 上未出现“请求正文”

    我正在尝试做一个测试POST请求我的 Swagger 文档 但我遇到了以下问题 在 Swagger Editor 上我可以正常测试它 但在 Swagger UI 上 请求正文字段不会出现 因此我无法输入我的电子邮件和密码来测试请求 您可以在
  • Redis 哨兵与主/从服务器位于同一服务器中?

    我一直在阅读有关如何使用 Redis Sentinel 的内容 并且我知道可以有 2 个或更多哨兵 并在从客户端调用时在它们之间进行负载平衡 将这 2 个哨兵与我的主服务器 从服务器放在同一服务器中是一个好的做法吗 换句话说 在同一物理服务
  • C# 如何从 VS2008 代码指标中排除生成的代码?

    如何从 Visual Studio 2008 代码指标中排除生成的代码 例如 Windows 窗体设计器相关代码 我一直在四处挖掘 但没有找到任何解决方案 DebuggerHidden and DebuggerNonUserCode没有影响
  • Linux:是否可以对共享库代码进行沙箱处理

    我有一个需要通过加载共享库来扩展的进程 有没有一种方法可以在沙箱环境 外部进程除外 中运行共享库代码 以便在出现段错误时不会使进程崩溃 并且对可以分配的内存量 可以使用的 CPU 周期有限制 ETC 我认为没有一种干净的方法可以做到这一点