【问题标题】:Is it possbible to use node with admin or sudo privileges within electron?是否可以在电子中使用具有管理员或 sudo 权限的节点?
【发布时间】:2022-03-14 11:08:13
【问题描述】:

是否可以在 electron 中使用具有 admin 或 sudo 权限的节点?

我找到了sudo-prompt,但据我了解,这只能用于执行 shell 命令,而不能用于使用节点函数(例如 main.js 文件中的代码) .

这可能吗?如果是这样,您能给我一些建议吗?

任何帮助将不胜感激,也许我只是在寻找错误的东西。

提前致谢!

【问题讨论】:

    标签: node.js electron


    【解决方案1】:

    可以,看看electron-sudo模块:https://github.com/automation-stack/electron-sudo

    以管理权限运行子进程,提示用户 如有必要,使用图形操作系统对话框。对背景有用 运行需要 sudo 的本机 Electron 应用程序的子进程。

    • Windows,使用带有本机用户帐户控制 (UAC) 提示的提升实用程序(无需 PowerShell)
    • OS X,使用捆绑的小程序(灵感来自 Joran Dirk Greef)
    • Linux,使用系统 pkexec 或 gksudo(系统或捆绑)。

    【讨论】:

    【解决方案2】:

    不建议以管理员身份运行整个 Electron 应用程序。因为这使整个应用程序可以全面访问以更改用户机器上的任何内容。如果有人要注入代码,或者如果你有错误,你可能会对计算机做很多坏事。

    最好运行单个函数,并在函数运行前始终提示用户以管理员身份登录。

    您可以在一个流行的 Electron 应用中看到这种方法:https://github.com/microsoft/vscode

    在 package.json 文件中,它们有两个有用的依赖项:

    他们检查是否使用native-is-elevated 提升了权限,如果没有,则使用sudo-prompt 提示输入管理员密码。

    您可以在此处阅读该过程的源代码:https://github.com/microsoft/vscode/blob/8845f89c1e4183b54126cd629cd45c8f0f7549f2/src/vs/platform/native/electron-main/nativeHostMainService.ts#L491

    我在这里使用这种方法创建了一个示例电子应用程序: https://github.com/kmturley/electron-runas-admin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2021-10-24
      • 1970-01-01
      • 2016-09-16
      相关资源
      最近更新 更多