电子——sudo命令

3
我有一个小型的文件操作应用程序。它主要处理用户的文件,但是有时需要访问macOS文件,因此我需要管理员权限。
有没有一种方法只询问用户一次root权限,这样整个应用程序就可以拥有它,用户不需要每次运行sudo命令时都输入密码?
我一直在寻找一个好的解决方案,其中之一是向用户请求密码并将其本地存储,但是随后使用它则不再被认为是“安全”的了。

你找到解决方案了吗? - Romeo Mihalcea
很遗憾,不是的 :( - mdmb
1个回答

0
Electron-sudo 提供了管理员/根权限的图形用户界面。通过以下方式安装它:
npm install electron-sudo

Electron 代码应该具备以下特点:

import Sudoer from 'electron-sudo';
 
let options = {name: 'electron sudo application'},
    sudoer = new Sudoer(options);
 
/* Spawn subprocess behavior */
let cp = await sudoer.spawn(
  'echo', ['$PARAM'], {env: {PARAM: 'VALUE'}}
);
cp.on('close', () => {
  /*
    cp.output.stdout (Buffer)
    cp.output.stderr (Buffer)
  */
});
 
/* Exec subprocess behavior */
let result = await sudoer.exec(
  'echo $PARAM', {env: {PARAM: 'VALUE'}}
);
/* result is Buffer with mixed (both stdout and stderr) output */
 
 
/* Usage with Vanila JS */
 
var Sudoer = require('electron-sudo').default;
var sudoer = new Sudoer(options);
sudoer.spawn('echo', ['$PARAM'], {env: {PARAM: 'VALUE'}}).then(function (cp) {
  /*
    cp.output.stdout (Buffer)
    cp.output.stderr (Buffer)
  */
});

官方存储库位于https://github.com/automation-stack/electron-sudo


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接