【问题标题】:Elixir , how can i run a CMD command that needs admin privileges?Elixir,我如何运行需要管理员权限的 CMD 命令?
【发布时间】:2022-08-20 01:05:00
【问题描述】:

我在 windows 环境中,我需要我的程序能够以管理员身份运行 CMD 命令...

当我尝试通过 System.cmd 运行时,异常返回是

留言:Unable to remove service (not enough privileges?)

编辑:

使用 iex -S mix 程序正常工作
但是当我生成发布和工作 erlsrv https://www.erlang.org/doc/man/erlsrv.html

它作为服务安装在 Windows 上,但没有权限在 CMD 上运行

  • 当您以管理员身份运行 Elixir 时会发生什么?
  • 在 Windows 操作系统上,我收到该消息以执行需要管理规则的任务
  • 在 Windows 中,右键单击 Elixir 的程序图标。然后从弹出的上下文菜单中选择以管理员身份运行。 Windows 会弹出一个模式窗口,询问“你想运行这个应用程序吗”——命名为 werl.exe。那就是运行 Elixir 的 Erlang 解释器。单击是。那么你应该从 Windows 获得足够的权限来做你需要在 Elixir 中做的事情。希望有帮助。

标签: erlang elixir


【解决方案1】:

通常,这可以通过授予您的用户在您的用户下使用sudo 运行程序的权限来解决,无需密码。

/etc/sudoers:

your_user        ALL = NOPASSWD: /usr/bin/service_to_run

然后在您的 应用程序中:

System.cmd("sudo", ["/usr/bin/service_to_run"], env: [{"FOO", "bar"}])

【讨论】:

  • 但要小心,这会带来明显的安全后果。例如,许多程序都有逃逸到外壳(可以使它们执行外部命令),因此允许用户运行该程序就等于允许它运行任何程序。在企业环境中,首先与您的 CISO 交谈。
  • Windows 10 操作系统环境中的等效项如何?
  • 不知道,对不起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-07
相关资源
最近更新 更多