Navigation: | Win-SUDO Home | Lizenzbedindungen | Download | Forum |
Was ist Win-SUDO? Win-SUDO führt Programme unter einem anderen Benutzerkontext aus.
Windows hat seit der Version NT (und den Nachfolgern 2000 und XP) eine umfangreiche Benutzerverwaltung. Änderungen an den Systemeinstellungen ist den Administratoren vorbehalten. Viele Programme aus Windows 9x Zeiten legen ihre Konfiguration aber weiterhin im Programmorder bzw. im HKLM-Zweig der Registry ab. Diese Bereiche sind aber nur von Administratoren beschreibbar. Systemnahe Tools und Installationsroutinen können ebenfalls nur von Administratoren aus-/durchgeführt werden. Darum arbeiten die meisten Anwender mit Administratorenrechte. Mailviren und andere Malware haben so leichtes Spiel, da sie somit Zugriff auf das gesamte System haben.
UNIX ist schon immer ein Mehrbenutzersystem mit einer strengen Rechtevergabe. Benutzer arbeiten nur mit eingeschränkten Rechten, Systemarbeiten werden mit dem Benutzer root durchgeführt. Damit sich der Anwender nicht für jede Systemaktivität neu anmelden muß kann eine temporäre Benutzerumschaltung erfolgen. Dafür steht unter UNIX das Kommando su (switch user) und unter Windows die schnelle Benutzerumschaltung zur Verfügung. Bei beiden Methoden wird aber eine komplett neue Shell gestartet. Während bei UNIX-Systemen es noch reicht den Benutzerwechsel in einem Kommandofenster durchzuführen, muß der Windowsuser seinen Desktop temporär verlassen. Auch wenn der alte Desktop erhalten bleibt ist der Wechsel auf jeden Fall lästig.
Alternativ dazu kann nur das Programm, welches die Administrationsrechte benötigt, mit diesen Rechten gestartet werden. Auch hier existieren unter UNIX und Windows ähnliche aber trotzdem unterschiedliche Konzepte. UNIX bedient sich des Kommandos sudo, während dem geneigten Windowsuser diese Möglichkeit über das Kontextmenü des Explorers (Ausführen als) bzw. das Kommandozeilentool runas (teilweise aber erst ab Windows XP). Die Unterschiede liegen in der Konfiguration und der Art wie bzw. unter welcher Kennung ein Programm gestartet wird.
sudo wird mit Hilfe des Kommandos visudo konfiguriert. Die Konfiguration wird in der Datei /etc/sudoers abgelegt. Hier wird geregelt welcher User welches Programm mit Adminrechten ausführen darf. Der Aufruf erfolgt durch sudo <Kommando>. Eine Angabe des Adminusernamens bzw. des Paswortes ist nicht notwendig. Das Programm wird automatisch mit root-Rechten gestartet.
Vorteil:
Nachteil:
Der User erreicht diesen Menüpunkt über das Kontextmenü des Explorers. Nach Auswahl eines Adminusers und der Eingabe startet das Programm mit diesem Useraccount, … in den meisten Fällen. Jeder User mit einem Passwort versehen sein. Desweiteren gibt es Programme die trotzdem nur eine neue Instanz unter dem alten User starten, z. B. Der Explorer. Ein weiterer Nachteil ist die Tatsache ist die Tatsache das der Standardanwender sowohl Usernamen als auch das Passwort des Adminusers kennen muß. Dies ist vielleicht bei einem heimischen PC der nur von einer Person genutzt wird kein Problem, bei einem Arbeitsplatzrechner oder auch einem Home-PC der von verschiedenen Usern genutzt wird, kann das aber schon zu einem ziemlichen Problem werden. Wer möchte schon jeden Gast, der einen eingeschränkten Internetuser benutzen darf, schon das Passwort seines Adminusers verraten, nur weil ein eingesetztes Tool Adminrechte verlangt. Leider existiert keine Möglichkeit dem Explorer beizubringen sich dieses Passwort zu merken. Eine Einschränkung auf bestimmte Programme existiert schon gar nicht. Lassen wir an dieser Stelle die Policies mal außen vor. Die Befehlszeilenversion von Ausführen als heisst runas. Hier muß neben dem zu startenden Kommando auch der User und das Passwort mitgegeben werden. Mit dem Parameter /savecred merkt sich runas wenigstens das Passwort. Dieser Parameter existiert aber erst ab Windows XP Professional. Windows 2000 und Windows XP Home Anwender (letzteres ist wohl die Masse) haben diese Möglichkeit der Passwortspeicherung nicht. Bei mir wurde aber trotz der Angabe von /savecredin unregelmäßigen Abständen nach dem Passwort gefragt.
Vorteil:
Nachteil: Der Standarduser muß das Adminpasswort kennen.
Win-SUDO verbindet die Konzepte aus beiden Welten. Der Adminuser legt mit dem Konfigurationstool wsudocfg eine zentrale Konfiguration in der Registry ab. Neben dem Namen des Adminusers und dem Passwort wird für jeden User festgelegt, ob dieser Win-SUDO benutzen darf und für welches Programm. Jedem erlaubten User stehen nach erfolgreicher Konfiguration das System-Tray Utility wsudocmd bzw. das Befehlszeilentool wsudo zur Verfügung. Eine genaue Beschreibung der Tools erfolgt in Kapitel 4. Das mit Win-SUDO aufgerufene Programm wird mit dem gespeicherten Usernamen/Passwort gestartet und in seinem Benutzerkontext ausgeführt. Dabei nutzt Win-SUDO den gleichen System-Call wie Ausführen als bzw. runas.
Vorteil:
Nachteil:
Win-SUDO besteht im wesentlichen aus 3 Programmen:
DAS Konfigurationstool für den Administrator. Hier werden sämtliche Einstellungen vorgenommen und in der Registry im Pfad HKEY_LOCAL_MACHINE/SOFTWARE/Win-Sudo3) gespeichert. Das Dialogfenster besteht aus 4 Bereichen:
Im folgenden wird näher auf die Einstellungsmöglichkeiten des Konfigurationskarteikastens eingegangen.
Grundsätzlich benötigt Win-SUDO den Namen und das Passwort des Users, unter dessen Benutzerkontext ein Programm ausgeführt werden soll. Der Benutzername kann aus einer DropDownListe ausgewählt werden. Das Passwort ist zweimal einzugeben. Mit Hilfe des Buttons Passwort anzeigen wird das eingegebene Passwort unverschlüsselt in einem Dialogfenster angezeigt.
Mit der Speicherung dieser Informationen sind die wichtigsten Einstellungen bereits getroffen. Jetzt müssen nur noch die Benutzer freigeschaltet werden, die Win-SUDO benutzen dürfen, da es in der Grundeinstellung keinem Benutzer erlaubt ist Win-SUDO zu benutzen. Diese Einstellungen werden auf der Karteikarte Benutzerrechte vorgenommen.
Für jeden Benutzer existiert hier eine weitere Karteikarte mit den jeweiligen benutzerspezifischen Einstellungen. Bitte nicht wundern, wenn dort mehr Benutzer angezeigt werden als in der Benutzerverwaltung der Systemsteuerung. Diese Systembenutzer, wie z. B. ASPNET, Gast, Hilfeassistent, usw., werden nicht herausgefiltert.
Zuerst muß der Benutzer ausgewählt werden, dessen Win-SUDO Rechte geändert werden sollen. Danach ist festzulegen was dieser Benutzer darf. Dies geschieht im oberen Kasten der Karteikarte:
Aliaskonfiguration:
Aliasse werden in der unteren Hälfte der Karteikarte verwaltet und konfiguriert. Alle Aliasse eines Benutzers werden in der linken Liste aufgelistet. Wird ein Eintrag markiert, dann erscheinen die dazu gespeicherten Werte in den rechten Eingabefeldern Alias, Programm, Parameter und Arbeitsverzeichnis. Die Werte können dann geändert werden. Mit Hilfe des Buttons Werte ändern werden die eingegebenen Werte dann in die Aliasliste übernommen. Mit Hilfe des Buttons Neu werden die Wertefelder geleert, damit ein neuer Eintrag erfasst werden kann. Soll der Eintrag in der Liste gespeichert werden, so ist auch hier der Button Werte übernehmen zu betätigen. Der Button Löschen löscht einen Eintrag aus der Liste. Der Button Alles löschen löscht die gesamte Aliasliste. Alle Änderungen werden erst über den Button Sichern permanent in die Registry geschrieben.
Auf der Infokarteikarte stehen einige Kurzinformationen zum Programm. Neben der Versionsnummer und einer Kurzanleitung existiert dort noch ein Link zur Homepage. ACHTUNG! Da ihr in diesem Augenblick als Administrator arbeitet, wird bei einem Klick auf den Link natürlich der Browser mit Adminrechten gestartet.
wsudocmd ist das grafische Tool für den Standardbenutzer um Programme in einem anderen Benutzerkontext auszuführen. Nach dem Start wird die vom Administrator erstellte Konfiguration (wsudocfg) für den aktuellen Benutzer ausgelesen und das Programm klinkt sich in den System-Tray ein
. Mit einem Klick auf das Symbol öffnet sich das Kontextmenü des Tools.
Die Bedeutung der Menüpunkte im einzelnen (von unten nach oben):
Ändert der Administrator mit wsudocfg die Konfiguration des Benutzers, dann muß wsudocmd neu gestartet werden, damit die neue Konfiguration aktiviert wird.
wsudo ist das Kommandozeilentool des Benutzers, um Programme in einem anderen Benutzerkontext auszuführen. Damit wsudo von der Kommandozeile einfach erreichbar ist, empfiehlt es sich das Programmverzeichnis in den Suchpfad aufzunehmen bzw. das Tool in ein Verzeichnis des Suchpfades zu kopieren.
Folgende Parameter sind möglich:
Die Speicherung des Passwortes stellt natürlich eine Sicherheitslücke dar, allerdings eine kleinere Lücke als permanent mit Administratorrechten zu arbeiten. Die Speicherung des Passwortes erfolgt im HKLM-Zweig der Registry, natürlich verschlüsselt. Dazu wird ein zufälliger Schlüssel generiert und ein MD5-Hashkey gebildet. Dieser Hashkey dient dann als Schlüssel für die Verschlüsselung des Adminuserpasswortes. Im Moment dient dazu noch der RC4 Algorithmus, wird aber in der nächsten Version durch den Blowfish-Algorithmus abgelöst.
Noch ein weiterer Sicherheitshinweis. Viele Personal Firewalls warnen
Ich garantiere für Win-SUDO folgendes:
Hält sich die eingesetzte Version nicht an diese Regeln, dann handelt es sich wohl um eine Fälschung. In diesem Fall bitte hier die neueste Version herunterladen. Für eine Info über diesen Mißbrauch wäre ich dankbar.
Version 0.9:
Version 1.0:
Version 1.x:
Noch für keine Version vorgesehen:
Bei weiteren Verbesserungsvorschlägen bzw. bei gefundenen Bugs informiert mich bitte über das Forum. Da ich die gesamte Entwicklung ausschließlich in meiner knapp bemessenen Freizeit durchführe, bitte ich um Verständnis wenn ich die Wünsche nicht sofort umsetze.
Win-SUDO ist Freeware. Bitte beachtet die genauen Lizenzbedingungen.
Die Software und ihre Dokumentation wird wie sie ist zur Verfügung gestellt. Da Fehlfunktionen auch bei ausführlich getesteter Software durch die Vielzahl an verschiedenen Rechnerkonfigurationen niemals ausgeschlossen werden können, übernimmt der Autor keinerlei Haftung für jedwede Folgeschäden, die sich durch direkten oder indirekten Einsatz der Software oder der Dokumentation ergeben. Uneingeschränkt ausgeschlossen ist vor allem die Haftung für Schäden aus entgangenem Gewinn, Betriebsunterbrechung, Verlust von Informationen und Daten und Schäden an anderer Software, auch wenn diese dem Autor bekannt sein sollten. Ausschließlich der Benutzer haftet für Folgen der Benutzung dieser Software.
Besonderen Dank an http://www.delphi-forum.de und http://www.swissdelphicenter.ch.
Desweiteren möchte ich allen freiwilligen Testern danken.
Funktionieren sollte Win-SUDO ab Windows 2000, da dort der benötigte System-Call existiert, d. h. unter den Systemen Windows 2000, Windows XP Home, Windows XP Professional und Windows 2003 Server. Getestet habe ich es unter Windows XP Home und Windows XP Professional. Windows 2000 und Windows 2003 Server konnte ich aufgrund fehlender Lizenzen nicht testen, sollte aber wie bereits erwähnt funktionieren. Sollte jemand über eine solche Lizenz verfügen, wäre ich über ein Feedback sehr dankbar.
Copyright © 2005 Frank Wittke