3 Punkte von GN⁺ 2024-02-09 | 1 Kommentare | Auf WhatsApp teilen
  • In Windows 11 Insider Preview Build 26052 wurde die Einführung von Sudo für Windows angekündigt
  • Sudo für Windows ist eine neue Möglichkeit, mit der Nutzer direkt erhöhte Befehle aus einer nicht privilegierten Konsolensitzung ausführen können
    • Man muss nun nicht mehr nach "Als Administrator ausführen" suchen
  • Als Open Source auf GitHub veröffentlicht
  • Falls zusätzliche Funktionen benötigt werden, die Sudo für Windows nicht bietet, wird empfohlen, sich gsudo von Gerardo Grignoli anzusehen

So aktiviert man Sudo für Windows

  • Sudo für Windows kann aktiviert werden, indem man auf der Windows-Einstellungsseite „Für Entwickler“ die Option „Sudo aktivieren“ einschaltet
  • Alternativ kann es durch Ausführen des folgenden Befehls in einer erhöhten Konsolensitzung aktiviert werden: sudo config --enable

So konfiguriert man Sudo für Windows

  • Sudo für Windows unterstützt derzeit drei Konfigurationsoptionen: In neuem Fenster ausführen (forceNewWindow), Eingabe deaktivieren (disableInput), Inline ausführen (normal)
  • Um die Konfigurationsoption zu ändern, kann man entweder das Dropdown-Menü auf der Windows-Einstellungsseite „Für Entwickler“ verwenden oder einen Befehl in einer erhöhten Konsolensitzung ausführen.

Konfigurationsoption 1: In neuem Fenster

  • In dieser Konfiguration öffnet Sudo für Windows ein neues erhöhtes Konsolenfenster und führt den Befehl dort aus.
  • Wenn man zum Beispiel sudo netstat -ab ausführt, wird ein neues Fenster geöffnet und der Befehl dort ausgeführt.

Konfigurationsoption 2: Eingabe deaktivieren

  • In dieser Konfiguration führt Sudo für Windows den erhöhten Prozess im aktuellen Fenster aus, aber der neue Prozess wird mit geschlossenem stdin erzeugt.
  • Das bedeutet, dass der neue Prozess keine Benutzereingaben akzeptiert und daher nicht für Prozesse funktioniert, die nach der Rechteerhöhung weitere Eingaben benötigen.

Konfigurationsoption 3: Inline

  • Diese Konfiguration verhält sich am ähnlichsten zu sudo auf anderen Betriebssystemen.
  • Sudo für Windows führt einen erhöhten Prozess aus, der mit dem aktuellen Fenster verbundenes stdin, stdout und stderr besitzt.
  • Das bedeutet, dass der neue erhöhte Prozess Eingaben empfangen und Ausgaben an das aktuelle Fenster senden kann.

Funktionsweise

  • Wenn man sudo in der Befehlszeile verwendet, um die Rechte eines Prozesses zu erhöhen, erscheint ein UAC-Dialog, in dem der Nutzer die Rechteerhöhung bestätigen muss.
  • Bestätigt der Nutzer die Rechteerhöhung, wird der Prozess entsprechend der gewählten Konfigurationsoption erhöht ausgeführt.
  • Um die optionalen Parameter des Befehls sudo zu prüfen, führt man in der Konsole sudo -h aus.

In neuem Fenster

  • In dieser Konfiguration öffnet sudo.exe ein neues erhöhtes Konsolenfenster und führt den Befehl dort aus.
  • Das neue Fenster startet mit demselben Arbeitsverzeichnis und denselben Umgebungsvariablen wie das aktuelle Fenster.
  • Diese Konfiguration hat einen Ablauf ähnlich dem Befehl runas.

Eingabe deaktivieren und Inline

  • In dieser Konfiguration startet sudo.exe einen neuen erhöhten Prozess und außerdem einen erhöhten sudo.exe-Prozess; das ursprüngliche nicht privilegierte sudo.exe richtet dann eine RPC-Verbindung zum neuen erhöhten Prozess ein.
  • Anders gesagt werden Informationen von der nicht privilegierten sudo-Instanz an die erhöhte Instanz weitergegeben.
  • Insbesondere werden die Konsolen-Handles des nicht privilegierten Prozesses an den erhöhten Prozess weitergereicht, sodass der erhöhte Prozess Eingaben vom nicht privilegierten Prozess lesen und Ausgaben an ihn schreiben kann.
  • In der Konfiguration „Eingabe deaktivieren“ wird jedoch das Eingabe-Handle der Konsole nicht an den erhöhten Prozess weitergegeben, sodass er keine Eingaben vom Nutzer lesen kann.

Nächste Schritte

  • Das Team arbeitet derzeit daran, Sudo für Windows als Open Source bereitzustellen, und will in den kommenden Monaten weitere Details zu den Plänen teilen.
  • Es wird darum gebeten, Feedback direkt im GitHub-Repository zu teilen.

Meinung von GN⁺:

  • Die Einführung von Sudo für Windows ist ein wichtiger Fortschritt, der Windows-Nutzern eine Linux-ähnliche Erfahrung bei der Rechteverwaltung bietet.
  • Das Tool hilft Entwicklern, effizienter zu arbeiten, und kann durch die Open-Source-Veröffentlichung Beiträge aus der Community erhalten.
  • Aus Sicherheitsgründen ist bei der Nutzung der Konfiguration „Inline“ Vorsicht geboten; interessant ist auch, dass künftig durch weitere Dokumentation mehr Informationen zu diesen Sicherheitsaspekten bereitgestellt werden sollen.

1 Kommentare

 
GN⁺ 2024-02-09
Hacker-News-Kommentare
  • Der Befehl sudo wird in Windows eingeführt. Es handelt sich nicht um eine einfache Portierung von Linux-sudo, sondern um eine neue Implementierung, die die Unterschiede in den Berechtigungsstrukturen zwischen Betriebssystemen berücksichtigt. Ziel ist es, Nutzern die Erfahrung zu bieten, Befehle im selben Terminalfenster mit Administratorrechten auszuführen.
  • Das fühlt sich ähnlich an wie damals, als PowerShell curl und wget durch völlig andere Befehle ersetzt hat. Das könnte problematisch sein, da die Argumente nicht kompatibel sind.
  • elevate von Nirsoft hat gut funktioniert, aber eine stärker ins System integrierte Funktion wäre besser.
  • Es ist interessant, dass sudo fast nur von einer einzigen Person gepflegt wird.
  • Es ist seltsam, über die hervorragende Benutzerfreundlichkeit von sudo zu schreiben, ohne Linux-/Unix-artige Betriebssysteme zu erwähnen.
  • Als ich bei Microsoft gearbeitet habe, wurde UAC (User Account Control) nicht als Sicherheitsgrenze betrachtet. Ich frage mich, wie diese Funktion so veröffentlicht werden konnte oder ob UAC inzwischen als Sicherheitsgrenze angesehen wird.
  • Ich habe sudo.ps1 aus psutils über scoop installiert und nutze es. Es gibt zwar einen UAC-Prompt, aber für interaktive Arbeit ist es gut geeignet.
  • Ich hoffe, dass "Windows 12" zu einem Linux-basierten Fenstermanager plus Desktop wird. Dieser würde bestehende Bugs sorgfältig nachbilden, um die Kompatibilität mit Windows 95/7/8/10/11 zu erhalten.
  • Wenn man die Richtung der PowerShell-Befehle betrachtet, ist zu erwarten, dass diese neue sudo-Implementierung zu einem sehr komplexen Befehl wird.
  • sudo wurde zwar als neue Funktion in Windows eingeführt, wirkt derzeit aber sicherheitstechnisch anfällig. Vermutlich wird es sich mit der Zeit verbessern.