【问题标题】:Electron - sudo commands电子 - sudo 命令
【发布时间】:2019-08-30 00:11:12
【问题描述】:
我有一个用于文件操作的小应用程序。它主要处理用户的文件,但它需要不时访问 macOS 文件,因此我需要管理员访问权限。
有没有办法只要求用户进行一次root访问,所以整个应用程序都有它,并且每次需要运行sudo命令时都不需要用户输入密码?
我一直在寻找一个不错的解决方案,一个是向用户询问密码并将其存储在本地,但以后使用它不再被认为是“安全的”。
【问题讨论】:
标签:
node.js
electron
sudo
【解决方案1】:
Electron-sudo 为管理员/root 权限提供 GUI。通过安装它
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