为单个子例程打开sudo(root权限)

时间:2014-03-17 22:01:52

标签: c matlab root sudo

我编写了一个用MEX编译器调用Matlab脚本的c代码。 计划是使用main()中的系统(" ./ CCodeWMatlab")调用此函数

首先,当我尝试调用此函数时,我收到错误:#34;加载共享库时出错:libeng.so"。 然而,通过添加:" export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/ usr / local / matlab71_sv / bin / glnxa64 / to .bashrc。"

在终端中运行./CcodeWMatlab。但是,如果我尝试输入sudo ./CcodeWMatlab,我会得到与第一次相同的错误:" "加载共享库时出错:libeng.so"。

在Main()中,有一些子程序需要以root身份运行。因此,如果没有sudo,则无法运行此选项。我需要的是为我的部分代码转换root权限的方法,最好是一个子程序。这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下几点:

  • sudo -E ./CcodeWMatlab要求sudo保留您的整个环境。
  • sudo LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./CcodeWMatlab仅保留该环境变量。

这些不保证可以正常工作 - 您可能需要禁用重置sudo配置文件中的环境。