fix: use sudo when pkexec not found
This commit is contained in:
parent
241b22a465
commit
38a9a9240d
@ -28,11 +28,19 @@ pub fn grant_permission(core: String) -> anyhow::Result<()> {
|
|||||||
let output = {
|
let output = {
|
||||||
let path = path.replace(' ', "\\ "); // 避免路径中有空格
|
let path = path.replace(' ', "\\ "); // 避免路径中有空格
|
||||||
let shell = format!("setcap cap_net_bind_service,cap_net_admin=+ep {path}");
|
let shell = format!("setcap cap_net_bind_service,cap_net_admin=+ep {path}");
|
||||||
Command::new("pkexec")
|
|
||||||
.arg("sh")
|
let sudo = match Command::new("which").arg("pkexec").output() {
|
||||||
.arg("-c")
|
Ok(output) => {
|
||||||
.arg(shell)
|
if output.stdout.is_empty() {
|
||||||
.output()?
|
"sudo"
|
||||||
|
} else {
|
||||||
|
"pkexec"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Err(_) => "sudo",
|
||||||
|
};
|
||||||
|
|
||||||
|
Command::new(sudo).arg("sh").arg("-c").arg(shell).output()?
|
||||||
};
|
};
|
||||||
|
|
||||||
if output.status.success() {
|
if output.status.success() {
|
||||||
|
Loading…
Reference in New Issue
Block a user