电子-sudo命令

时间:2019-04-08 19:13:49

标签: node.js electron sudo

我有一个用于文件操作的小应用程序。它主要处理用户的文件,但是需要不时访问macOS文件,因此我需要管理员访问权限。

是否有一种方法仅询问用户一次root访问权限,因此整个应用程序都具有该权限,并且不需要每次运行sudo命令时用户都键入密码?

我一直在寻找一种不错的解决方案,一种是要求用户输入密码并将其存储在本地,但是以后不再使用它是“安全的”。

1 个答案:

答案 0 :(得分:1)

Electron-sudo为GUI提供了admin / root特权。安装方式

npm install electron-sudo

电子密码应具有

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

相关问题