Microsoft hat vor kurzem Sudo für Windows 11 vorgestellt. Diese neue Funktion ermöglicht die Ausführung von erweiterten Befehlen von einer nicht erweiterten Konsolensitzung aus und vereinfacht den Prozess für Benutzer, die einen Befehl erweitern müssen, ohne eine neue erweiterte Konsole öffnen zu müssen. Ein bemerkenswerter Aspekt dieser Version ist Microsofts Entscheidung, das Projekt auf GitHub als Open-Source zu veröffentlichen. Ganz im Sinne von Transparenz und dem Community Gedanken.
Sudo für Windows führt drei Konfigurationsoptionen ein, um verschiedenen Benutzeranforderungen gerecht zu werden:
- Ausführen von Befehlen in einem neuen Fenster
- Ausführen von Prozessen mit deaktivierter Eingabe
- Ausführen von Prozessen inline mit der aktuellen Konsolensitzung.
Jede Konfigurationsoption zielt auf bestimmte Szenarien ab, von der Ausführung von Befehlen, die keine Benutzereingabe erfordern, bis hin zu solchen, die eine solche erfordern, und spiegelt damit die sudo-Funktionalität in anderen Betriebssystemen wider.
Sudo für Windos so geht es
Das Tool arbeitet mit einem Dialog der Benutzerkontensteuerung (User Account Control, UAC), in dem der Benutzer die Eingabe von Befehlen bestätigen muss, um die Einhaltung von Sicherheitsprotokollen zu gewährleisten. Je nach Konfiguration startet Sudo für Windows entweder eine neue erweiterte Konsole oder arbeitet innerhalb der aktuellen Konsole, wobei eine RPC-Verbindung zwischen erweiterten und nicht erweiterten sudo-Instanzen für die Ausführung und Ausgabe von Befehlen möglich ist.
So aktivierst Du Sudo für Windows
Um Sudo für Windows zu aktivieren, navigiere zu der Seite Einstellungen > Für Entwickler in den Windows-Einstellungen und schalte die Option „Sudo aktivieren“ ein. Für die Profis bietet sich alternativ auch der folgende Befehl an, um Sudo für Windows zu aktivieren. Führe den Befehl in der erweiterten Konsolensitzung aus:
sudo config --enable
Wie Du Sudo für Windows konfigurierst
Sudo für Windows unterstützt wie oben genannt drei verschiedene Konfigurationsmöglichkeiten:
- In einem neuen Fenster (forceNewWindow)
- Eingabe geschlossen (disableInput)
- Inline (normal)
Um die Konfigurationsoption zu ändern, verwende das Dropdown-Menü auf der Seite Einstellungen > Für Entwickler in den Windows-Einstellungen. Die Profis und Entwickler unter Euch nutzen einfach den Befehl in einer erweiterten Konsolensitzung
sudo config --enable
Sudo für Windows konfigurieren
Konfigurationsmöglichkeit 1: Ausführung in einem neuen Fenster
Mit dieser Einstellung startet Sudo unter Windows den Befehl in einem frisch geöffneten, speziell dafür vorgesehenen Konsolenfenster. Diese Vorgehensweise ist die voreingestellte Methode, sobald Sudo eingeschaltet wird.sudo netstat -ab
Es wird ein neues Fenster geöffnet und der Befehl wird in diesem Fenster ausgeführt:
sudo netstat -ab, image
Konfigurationsoption 2: Eingabe geschlossen
In dieser Einstellung führt Sudo für Windows den Prozess mit erhöhten Rechten im derzeitigen Fenster aus, allerdings wird der neu gestartete Prozess ohne eine verbundene Standard-Eingabe (stdin) initiiert. Das hat zur Folge, dass der neue Prozess keine Eingaben über die Benutzeroberfläche entgegennehmen kann. Aus diesem Grund eignet sich diese Konfigurationsweise nicht für Prozesse, die nach der Privilegienerhöhung weitere Eingaben vom Benutzer verlangen.
Konfigurationsoption 3: Inline
Diese Konfiguration ähnelt am stärksten der Funktionsweise von sudo auf anderen Betriebssystemen. Hierbei führt Sudo für Windows den Prozess mit erhöhten Rechten aus, während die Standard-Ein- und Ausgabe (stdin, stdout) sowie die Standard-Fehlerausgabe (stderr) alle an das gegenwärtige Fenster angebunden sind. Das ermöglicht es dem neu gestarteten Prozess mit erhöhten Rechten, Eingaben aus dem aktuellen Fenster zu akzeptieren und Ausgaben sowie Fehlermeldungen an dieses zurückzusenden.
Wie funktioniert das nun alles mit Sudo in Windows?
Stell dir vor, du gibst einen Befehl in die Kommandozeile ein und prompt erscheint der UAC-Dialog (User Account Control). Dieser freundliche Assistent bittet dich um Erlaubnis, bevor der Spaß losgeht. Sobald du grünes Licht gibst, passiert die Magie: Der Prozess wird mit den Rechten angehoben, die du in den Konfigurationsoptionen festgelegt hast.
Falls du mal ins Detail gehen möchtest, kannst du mit einem schnellen sudo -h in deinem Terminalfenster alle verfügbaren Optionen von sudo auskundschaften.
Neues Fenster auf, und los geht’s
Hierbei öffnet sudo.exe ein frisches Konsolenfenster mit Administratorrechten und zündet den Befehl dort. Das Beste daran? Das neue Fenster fühlt sich wie zu Hause an – es startet im selben Arbeitsverzeichnis und mit denselben Umgebungsvariablen wie dein aktuelles Fenster. Fast so, als würdest du den „runas“-Befehl verwenden.
Geschlossene Eingabe und Inline-Betrieb
Jetzt wird es interessant: In diesen Modi startet sudo.exe einen neuen Prozess auf höherer Ebene, während das Original im Hintergrund eine Verbindung herstellt – quasi wie ein unsichtbares Band zwischen den beiden. Sie teilen sich Infos und sogar Konsolen-Handles, was bedeutet, dass der Prozess auf höherer Ebene lesen und schreiben kann, als wärst du es selbst. Aber Achtung: Ist die Eingabe geschlossen, bleibt der Dialog einseitig – keine Eingaben für den erhöhten Prozess.
Sicherheit zuerst
Bei all dem Komfort, den sudo bietet, ist es wichtig, die Augen offen zu halten. Vor allem in den Modi „Inline“ und „Eingabe geschlossen“ musst du bedenken, dass Prozesse mittlerer Integrität theoretisch die Kontrolle übernehmen könnten. Doch keine Sorge, im Modus „Eingabe geschlossen“ ist das Risiko minimiert, da der erhöhte Prozess blind für deine Eingaben ist.
Hinweis: Alle Angaben ohne Gewähr 😉