You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非root用户运行Mellanox libvma:解决LD_LIBRARY_PATH失效问题

问题:setcap/setuid权限导致LD_LIBRARY_PATH失效,如何加载路径不固定的自研共享库?

在使用Mellanox内核旁路库libvma运行项目时,按照官方指南完成以下操作后:

  • sudo chmod u+s /usr/lib64/libvma*
  • sudo setcap cap_net_raw,cap_net_admin+ep my_program
  • LD_PRELOAD=libvma.so my_program

LD链接器进入「安全执行」模式,完全忽略LD_LIBRARY_PATH环境变量。但项目依赖多个自研共享库(如my_program依赖libmy-core.so、libmy-network.so、libmy-util.so),缺少该环境变量会触发./my_program: error while loading shared libraries: ....错误。

已尝试的方案:

  • 编译时设置rpath:但由于编译后的.so需要部署到路径不固定的不同账户下,该方案效果不佳,仅能通过在rpath中添加相对路径「.」临时解决。
  • 包装脚本:子进程无法继承父脚本设置的权限,即使已授予+epi组权限。

请问是否有更优方法绕过该安全限制?

内容的提问来源于stack exchange,提问作者KKK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 13:25:59