在Erlang / Elixir中进行系统调用时的Sudo权限

时间:2016-02-17 21:26:39

标签: erlang elixir

我想从Elixir / Erlang进行系统调用。 我知道Erlang有OS module而Elixir有System module但是我无法从这些链接中弄清楚我应该如何使用sudo。 我试过运行这个并收到错误:

> System.cmd("sudo su", [])
** (ErlangError) erlang error: :enoent
(elixir) lib/system.ex:450: System.cmd("sudo su", [], [])

关于如何使这项工作的任何想法?

2 个答案:

答案 0 :(得分:0)

ENOENT是POSIX代表“没有这样的文件或目录”。它正在寻找“sudo su”命令而没有找到它。

尝试使用System.cmd("sudo", ["su"], []),这将使用单个参数“su”调用“sudo”命令。

答案 1 :(得分:0)

我似乎无法在System.cmd内使用sudo。它给出了以下错误:

sudo: no tty present and no askpass program specified

我猜这意味着必须存在与输入密码相关的某个程序。但是,我设法做的是在调用sudo时使用iex - > sudo iex现在所有需要sudo的命令似乎都有效。

Erlang文档似乎也未对此进行任何说明。