fix: use sudo when pkexec not found

This commit is contained in:
GyDi 2023-08-12 15:58:37 +08:00
parent 241b22a465
commit 38a9a9240d
No known key found for this signature in database
GPG Key ID: 9C3AD40F1F99880A

View File

@ -28,11 +28,19 @@ pub fn grant_permission(core: String) -> anyhow::Result<()> {
let output = {
let path = path.replace(' ', "\\ "); // 避免路径中有空格
let shell = format!("setcap cap_net_bind_service,cap_net_admin=+ep {path}");
Command::new("pkexec")
.arg("sh")
.arg("-c")
.arg(shell)
.output()?
let sudo = match Command::new("which").arg("pkexec").output() {
Ok(output) => {
if output.stdout.is_empty() {
"sudo"
} else {
"pkexec"
}
}
Err(_) => "sudo",
};
Command::new(sudo).arg("sh").arg("-c").arg(shell).output()?
};
if output.status.success() {