Das Symptom
Windows 11 hat jetzt sudo, und wer von Linux kommt, tippt sofort los wie immer. Das Ergebnis fühlt sich falsch an. Statt einer Passwortzeile im Terminal springt der UAC-Dialog auf. Der Befehl läuft dann nicht im eigenen Fenster, sondern in einem neuen, und die Ausgabe ist dort statt hier. Der Versuch, einen Befehl als anderes Konto zu starten, wie man es von Linux gewohnt ist, führt schlicht nirgendwohin, weil es diese Möglichkeit nicht gibt.
Also wird an den Einstellungen gedreht, bis es sich endlich nach Linux anfühlt: Modus auf Inline, Ausgabe im selben Fenster, fertig. Genau an dieser Stelle hängt Microsoft auf der eigenen Dokumentationsseite einen Warnkasten auf, und zwar ganz oben, noch vor der Anleitung zum Umschalten.
Die „Layer 8“-Wahrheit
Der Name verspricht etwas, das das Werkzeug nicht hält. Sudo für Windows ist laut Microsoft ein Weg, Befehle „as an administrator“ aus einer nicht erhöhten Konsole zu starten. Das ist der gesamte Funktionsumfang. Einen anderen Zielbenutzer gibt es nicht, und das steht ausdrücklich im FAQ: „At this point in time, the sudo command on Windows does not support running programs as other users.“ Microsoft führt die Funktion als geplant, mit dem nüchternen Nachsatz, dass sie noch nicht existiert. Wer sudo -u im Kopf hat, sucht also eine Option, die es auf dieser Plattform schlicht nicht gibt.
Auch die Passwortabfrage ist kein Versehen. Die Erhöhung läuft ausschließlich über die Benutzerkontensteuerung; die Seite stellt dem runas gegenüber, das auf der Kommandozeile nach einem Passwort fragen kann. Wer im Terminal tippen will, statt zu klicken, ist bei runas richtig und nicht bei sudo.
Das neue Fenster ist ebenfalls Absicht. forceNewWindow ist die Standardeinstellung, und Microsoft vergleicht sie selbst mit runas: „This is similar to the behavior of the runas /user:admin command.“ Erst disableInput oder normal binden den erhöhten Prozess an das aktuelle Fenster. Und hier wird es ernst. Für beide Modi beschreibt Microsoft dasselbe Risiko: „It is possible for malicious processes to attempt to drive the elevated process using the connection established by the unelevated sudo.exe and the elevated sudo.exe process.“ Im Inline-Modus kann ein nicht erhöhter Prozess im selben Fenster Eingaben an den erhöhten schicken oder seine Ausgabe mitlesen. disableInput schließt wenigstens den Eingabekanal.
Der Layer-8-Fehler ist also zweistufig. Erst wird sudo für das gehalten, was es unter Linux ist, dann wird es mit Gewalt dazu umgebaut, und zwar über genau den Schalter, vor dem der Hersteller warnt. Microsofts eigene Empfehlung ist unspektakulär: „The default forceNewWindow configuration option is recommended unless you are familiar and comfortable with the risks associated with the other sudo configurations.“ Wer die Ausgabe unbedingt im eigenen Fenster braucht, nimmt disableInput als Kompromiss. Wer einen anderen Benutzer braucht, nimmt runas. Und wer eine Passwortzeile vermisst, hat nichts verloren außer einer Gewohnheit.