我有一个用于文件操作的小应用程序。它主要处理用户的文件,但是需要不时访问macOS文件,因此我需要管理员访问权限。
是否有一种方法仅询问用户一次root访问权限,因此整个应用程序都具有该权限,并且不需要每次运行sudo
命令时用户都键入密码?
我一直在寻找一种不错的解决方案,一种是要求用户输入密码并将其存储在本地,但是以后不再使用它是“安全的”。
答案 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)
*/
});