====== Win-SUDO Dokumentation ====== Navigation: | [[wsudo_start|Win-SUDO Home]] | [[wsudo_lizenz|Lizenzbedindungen]] | [[http://www.macfrognet.de/portal/downloads.php#download_id_2|Download]] | [[http://www.macfrognet.de/portal/viewforum.php?id=4|Forum]] | =====1. Einleitung:====== Was ist Win-SUDO? Win-SUDO führt Programme unter einem anderen Benutzerkontext aus. =====2. Allgemeines:===== 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. ====2.1. sudo:==== //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 //. Eine Angabe des Adminusernamens bzw. des Paswortes ist nicht notwendig. Das Programm wird automatisch mit root-Rechten gestartet. __Vorteil:__ * Einschränkung möglich, welcher User Programme mit sudo starten darf. * Einschränkung möglich, welches Programm dieser User mit sudo starten darf. * Eingabe des root-Passwortes ist nicht notwendig. __Nachteil:__ * Programme werden immer mit dem User root gestartet. ====2.2. Ausführen als/runas:==== 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 ///savecred//in unregelmäßigen Abständen nach dem Passwort gefragt. __Vorteil:__ *Keine separate Konfiguration nötig. *Programme können unter verschiedenen Usern gestartet werden. __Nachteil:__ Der Standarduser muß das Adminpasswort kennen. *Passwort kann nicht immer gespeichert werden. *Keine Einschränkung auf Benutzer möglich. *Keine Einschränkung auf bestimmte Programme möglich. ====2.3. Win-SUDO:==== Win-SUDO verbindet die Konzepte aus beiden Welten. Der Adminuser legt mit dem Konfigurationstool //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.1._wsudocfg|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 //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.2._wsudocmd|wsudocmd]]// bzw. das Befehlszeilentool //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.3._wsudo|wsudo]]// zur Verfügung. Eine genaue Beschreibung der Tools erfolgt in [[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4._erluterungen_zu_den_tools|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:__ *Zentrale Konfiguration durch den Adminuser. *Der eingeschränkte User muß Namen/Passwort des Adminusers nicht kennen. *Einschränkung, welcher User Win-SUDO benutzen dürfen, ist möglich. *Einschränkung, welche Programme gestartet werden dürfen, ist möglich. *Komfortabel, da keine Passworteingabe notwendig ist. __Nachteil:__ *Passort muß gespeichert werden. =====3. Installation/Deinstallation:===== ====3.1. Installation:==== ===3.1.1. Automatische Installation:=== -Installationspaket von der [[http://www.macfrognet.de/portal/downloads.php#download_id_2|Downloadseite]] herunterladen. -Installation durchführen. -Konfiguration durchführen. ===3.1.2. Manuelle Installation:=== -ZIP-Paket von der [[http://www.macfrognet.de/portal/downloads.php#download_id_3|Downloadseite]] herunterladen. -ZIP-Archiv in ein neues Verzeichnis entpacken. -Konfiguration durchführen. ====3.2. Deinstallation:==== ===3.2.1. Automatische Deinstallation:=== -Evtl. von den Anwendern den Schalter Automatisch starten im System-Try-Utility durchführen lassen. Soll diese Aktivität vom Systemverwalter durchgeführt werden, dann bitte folgenden Eintrag bei allen Usern aus der Registry löschen: //HKEY_USERS/**S-User-ID**/Software/Microsoft/Windows/CurrentVersion/Run/wsudocmd//((Slash durch Backslash ersetzen)). -Deinstallation durchführen. ===3.2.2. Manuelle Deinstallation:=== -s. Punkt 1 der automatischen Deinstallation. -Den Registrypfad //HKEY_LOCAL_MACHINE/SOFTWARE/Win-Sudo//((Slash durch Backslash ersetzen)) löschen. -Die entpackten Dateien oder das Installationsverzeichnis löschen. =====4. Erläuterungen zu den Tools:===== Win-SUDO besteht im wesentlichen aus 3 Programmen: *//[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.1._wsudocfg|wsudocfg]]//: Konfigurationswerkzeug für Win-SUDO. Muß vom Administrator ausgeführt werden. *//[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.3._wsudo|wsudo]]//: Das Befehlszeilentool für den Anwender. *//[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.2._wsudocmd|wsudocmd]]//: Das System-Tray-Utility für den Anwender. ====4.1. wsudocfg:==== DAS Konfigurationstool für den Administrator. Hier werden sämtliche Einstellungen vorgenommen und in der Registry im Pfad //HKEY_LOCAL_MACHINE/SOFTWARE/Win-Sudo//((Slash durch Backslash ersetzen)) gespeichert. Das Dialogfenster besteht aus 4 Bereichen: *Titelzeile mit dem Titel und dem Win-SUDO Symbol. *Dem Einstellungskarteikasten mit den Karteikarten: *//Globale Einstellungen// *//Benutzerrechte// *//Info// *Die Buttonleiste mit den Buttons: *//Sichern//: schreibt sämtliche Einstellungen in die Registry. *//Schließen//: Beendet das Konfigurationstool. *Die Statusleiste zeigt folgende Informationen an: *//Den Computernamen//. *//Den Namen des aktuellen Benutzers//. *//Die Windows-Version//. Im folgenden wird näher auf die Einstellungsmöglichkeiten des Konfigurationskarteikastens eingegangen. ===4.1.1. Karteikarte: Globale Einstellungen=== {{http://www.macfrognet.de/wsudo/img/wsudocfg1.jpg}} 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. ===4.1.2. Karteikarte: Benutzerrechte=== {{http://www.macfrognet.de/wsudo/img/wsudocfg2.jpg}} 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: *//Kein Programm//: Das ist die Standardeinstellung für jeden Benutzer. Win-SUDO darf von diesem Benutzer **nicht** benutzt werden. *//Nur die unten aufgeführten Programme//: Die Nutzung von Win-SUDO wird auf bestimmte Programme eingeschränkt. Für jedes dieser Programme muß eine Alias- Konfiguration angelegt werden. Aliasse sind benutzerspezifisch und werden im unteren Teil der Karteikarte verwaltet, aber dazu später. *//Alle Programme - Keine Einschränkung//: Der Benutzer darf jedes Programm auf dem System mit Win-SUDO starten. Zusätzlich stehen alle Aliasse zur Verfügung. __**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. ===4.1.3. Karteikarte: Info=== {{http://www.macfrognet.de/wsudo/img/wsudocfg3.jpg}} 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. ====4.2. wsudocmd:==== //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 (//[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.1._wsudocfg|wsudocfg]]//) für den aktuellen Benutzer ausgelesen und das Programm klinkt sich in den System-Tray ein {{http://www.macfrognet.de/wsudo/img/wsudocmd1.jpg}}. Mit einem Klick auf das Symbol öffnet sich das Kontextmenü des Tools. {{http://www.macfrognet.de/wsudo/img/wsudocmd2.jpg}} Die Bedeutung der Menüpunkte im einzelnen (von unten nach oben): *//Beenden//: Beendet das Programm. *//Menü schliessen//: Schliesst das Kontextmenü. *//Run//: Es erscheint ein //Ausführen-Dialog// in dem beliebige Programme ausgewählt/eingegenen werden können. Damit dieser Menüpunkt aktiv wird, benötigt der Benutzer das Recht //Alle Programme - Keine Einschränkung//. *//Automatisch starten//: Wird dieser Menüpunkt ausgewählt, dann wird ein Autostart-Eintrag in der Registry (//HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run/wsudocmd//((Slash durch Backslash ersetzen))) erzeugt. Danach startet //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.2._wsudocmd|wsudocmd]]// nach jeder Anmeldung automatisch. Wird der Menüpunkt wieder deaktiviert, dann wird der Registry-Key gelöscht. *//Info//: Es erscheint ein Infodialog mit einigen Kurzinformationen. {{http://www.macfrognet.de/wsudo/img/wsudocmd3.jpg}} *//Alle Einträge oberhalb von Info//: Sämtliche Aliaskonfigurationen für den Benutzer werden eingelesen und für jeden Alias ein Menüpunkt erzeugt. Mit einem Klick auf einen Alias-Menüpunkt wird das dahinter liegende Programm gestartet. Für häufig genutzte Programme macht es also Sinn Aliaskonfigurationen anzulegen. Damit die Einträge auch aktiv sind, muß der Benutzer über das Recht //Alle Programme - Keine Einschränkung// oder //Nur die unten aufgelisteten Programme// verfügen. Ändert der Administrator mit //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.1._wsudocfg|wsudocfg]]// die Konfiguration des Benutzers, dann muß //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.2._wsudocmd|wsudocmd]]// neu gestartet werden, damit die neue Konfiguration aktiviert wird. ====4.3. wsudo:==== //wsudo// ist das Kommandozeilentool des Benutzers, um Programme in einem anderen Benutzerkontext auszuführen. Damit //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.3._wsudo|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: *//wsudo /?//: Listet die möglichen Parameter auf. {{http://www.macfrognet.de/wsudo/img/wsudo1.jpg}} *//wsudo /h//: Zeigt eine kurze Hilfe an. {{http://www.macfrognet.de/wsudo/img/wsudo2.jpg}} *//wsudo /a //: Startet eine vom Administrator mit //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.1._wsudocfg|wsudocfg]]// angelegte Aliaskonfiguration des Benutzers. Damit diese Option möglich ist, muß der Benutzer über das Recht //Alle Programme - Keine Einschränkung// oder //Nur die unten aufgelisteten Programme// verfügen. *//wsudo //: Startet das angegebene Programm. Damit diese Option möglich ist, muß der Benutzer über das Recht //Alle Programme - Keine Einschränkung// verfügen. =====5. Sicherheit:===== 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 -wenn ein Programm versucht eine Verbindung zum Internet aufzubauen bzw. einen Server im Web zu erreichen und -wenn ein Programm ein anderes starten möchte. **__Ich garantiere für Win-SUDO folgendes:__** *Win-SUDO enthält keinen Dialer oder eine andere Spyware. *Win-SUDO wird **__niemals__** eine Verbindung zum Internet aufnehmen. Aus diesem Grunde ist auch bewusst keine automatische Update-Möglichkeit enthalten. *Win-SUDO startet unaufgefordert keine anderen Programme, sondern nur das jeweilige Programm welches durch den Aufruf gestartet werden soll. Dies ist ja auch die Aufgabe von Win-SUDO. //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.1._wsudocfg|wsudocfg]]// startet **__niemals__** ein anderes Programm. *Kein automatischer Start der Tools. Nur im System-Tray Utility //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.2._wsudocmd|wsudocmd]]// hat der Anwender die Möglichkeit den Start bei jedem Anmeldevorgang zu automatisieren. Dies muß aber manuell vom Anwender aktiviert werden. Hält sich die eingesetzte Version nicht an diese Regeln, dann handelt es sich wohl um eine Fälschung. In diesem Fall bitte [[http://www.macfrognet.de/portal/downloads.php#download_id_2|hier]] die neueste Version herunterladen. Für eine Info über diesen Mißbrauch wäre ich dankbar. =====6. Historie:===== *01.04.2005 V0.1 Abschlusstests mit Friendly User *08.05.2005 V0.2 Veröffentlichung =====7. Geplante Änderungen:===== //__Version 0.9:__// *Benutzerübergreifende Alias-Einstellungen. *Für die Passwortverschlüsselung wird der Blowfish-Algorithmus anstatt dem RC4-Algorithmus verwendet. *Erweiterung des generierten Keys um Hardwarespezifische Merkmale *Die Namen von bereits aus dem //[[http://www.macfrognet.de/portal/doku.php?id=wsudo_doku#4.2._wsudocmd|wsudocmd]]// Ausführen Dialog gestartete Programme werden in der Registry gespeichert und wieder in einer Auswahlbox zur Verfügung gestellt. *Multilanguagesupport *User kann sich Icon's für Aliasaufrufe auf dem Desktop erzeugen lassen *Protokollierung aller Aktivitäten im Systemlog *Anstatt unter einem anderen User zu starten wird der Anwender selber temporär nur für den neuen Prozess zum Administrator gemacht //__Version 1.0:__// *Plugin-Schnittstelle für alternative Verschlüsselungs-/Passwortspeicherungs-Tools *Alternative Passwortabfrage wenn kein Passwort gespeichert ist *Angabe von Domänenusern //__Version 1.x:__// *Win-SUDO Systemservice //__Noch für keine Version vorgesehen:__// *Evtl. wird das Passwort nicht in der Registry sondern im Keyring des angemeldeten Benutzers gespeichert. Bei weiteren Verbesserungsvorschlägen bzw. bei gefundenen Bugs informiert mich bitte über das [[http://www.macfrognet.de/portal/viewforum.php?id=4|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. =====8. Lizenz und Haftung:===== Win-SUDO ist Freeware. Bitte beachtet die genauen [[wsudo_lizenz|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. =====9. Danksagung:===== Besonderen Dank an http://www.delphi-forum.de und http://www.swissdelphicenter.ch. Desweiteren möchte ich allen freiwilligen Testern danken. =====10. Systemvoraussetzungen:===== 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 (c) 2005 Frank Wittke//