From 62e50748dabeaeac108f51f9e7f32c5e94cca346 Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Sun, 23 Aug 2026 18:12:54 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20Fehlerbehandlung=20bei=20sudo-Ausf=C3=BC?= =?UTF-8?q?hrung=20verbessert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sudo.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/sudo.rs b/src/sudo.rs index fd0ef65..e4c1564 100644 --- a/src/sudo.rs +++ b/src/sudo.rs @@ -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 = 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); }