Javascript 在Electron应用程序的sudo.exec中编写代码
我需要在许多地方执行具有管理员权限的代码。我找到sudo.exe并成功提示用户输入权限和密码。我仍然不知道如何确切地使用sudo.exe。因为我在删除需要管理员权限的文件时遇到了相同的错误,权限被拒绝。这就是我的代码的样子:Javascript 在Electron应用程序的sudo.exec中编写代码,javascript,macos,electron,sudo,permission-denied,Javascript,Macos,Electron,Sudo,Permission Denied,我需要在许多地方执行具有管理员权限的代码。我找到sudo.exe并成功提示用户输入权限和密码。我仍然不知道如何确切地使用sudo.exe。因为我在删除需要管理员权限的文件时遇到了相同的错误,权限被拒绝。这就是我的代码的样子: const fs = require('fs') var sudo = require('sudo-prompt'); var options = { name: 'Electron', }; sudo.exec('echo hello', options,
const fs = require('fs')
var sudo = require('sudo-prompt');
var options = {
name: 'Electron',
};
sudo.exec('echo hello', options,
function(error, stdout, stderr) {
if (error) throw error;
// Code that I want to run with admin rights
fs.unlinkSync("/private/var/log/fsck_hfs.log", (err) => {
alert("File succesfully deleted");
});
}
);
我认为此方法只能用于运行命令,在本例中,类似于echo hello。如果我真的想执行一段代码而不是一个命令呢?
这种方法有效吗?或者还有其他方法可用吗
在Electron中是否有更好的方法来获取权限?
sudo prompt
将获得您传递给它的命令更高的权限,而不是您在回调中运行的代码。您必须为每个要执行的命令调用sudo.exec()
。例如:sudo.exec(“rm/private/var/log/fsck_hfs.log”,options,(e,stdout,stderr)=>{}代码>