Fix: Fehlerbehandlung bei sudo-Ausführung verbessert

This commit is contained in:
2026-08-23 18:12:54 +02:00
parent a88d7d7723
commit 62e50748da
+10 -2
View File
@@ -1,6 +1,7 @@
use crate::log::{LogLevel, log};
use std::env;
use std::os::unix::process::CommandExt;
use std::process::Command;
use std::process::{Command, exit};
/// Prüft, ob das Programm mit Root-/Administrator-Rechten ausgeführt wird.
///
@@ -11,10 +12,17 @@ use std::process::Command;
pub fn is_run_as_root() -> bool {
unsafe { libc::geteuid() == 0 }
}
/// Startet das Programm mit Root-Rechten über `sudo` neu.
///
/// Diese Funktion versucht das Programm mit erhöhten Rechten neu zu starten.
pub fn run_as_root() {
let commandline_args: Vec<String> = env::args().collect();
let _output = Command::new("sudo").args(&commandline_args).exec(); // Bye bye never returns
let err = Command::new("sudo").args(&commandline_args).exec();
log(
"auth",
&format!("Fehler beim Ausführen von 'sudo': {}", err),
LogLevel::Error,
);
exit(1);
}