Windows 3x / 9x am LSG

 
  Admin / Knowhow / Benutzer / Dienste  
  Jeder Dienst muss unter einem Benutzeraccount laufen. Dies gilt für alle Unix und NT Systeme. Alle diese Systeme brauchen einen sogenannten User Token. Dieser Token enthält dann die weiteren Zugriffsrechte. Dies gilt zum Beispiel für Dateien, de ja ebenfalls über Zugriffsrechte besitzen. Wichtig dabei zu wissen ist, dass ein Dienst mit Hilfe einer gültigen Benutzername/Passwort Kombination den Security Token wechseln können, dass heißt den Benutzeraccount unter dem sie laufen zu ändern. Damit kann der Zugriff auf eine Datei genehmigt werden, auch wenn der Dienst von sich aus keine Zugriffsrechte besitzt (Apache, IIS, Samba).

Unter welchem Account laufen sie denn?

Um zu wissen unter welchem Account ein Dienst läuft, muss man sich ein bisschen tiefer mit dem Start eines "NT" Systems beschäftigen.

Als erstes muss ein Betriebssystemkern geladen werden. (NTDETECT, KERNEL32 für Windows, VMLINUZ (oder andere Kernelnamen) für Linux). Dieser Kern kann dann schon zwischen Benutzern unterscheiden, dass heißt Security Token erstellen. Gleichzeitig hat dieser Kern natürlich den vollen Zugriff auf das System. Dieser Kern vergibt dann auch die Benutzerrechte und zwar im Normalfall nach einem vorgegebenen Schema.

Wenn kein weiterer Benutzer angegeben ist, läuft ein Dienst unter dem Token, unter dem auch der Betriebssystemkern läuft. Das ist unter Linux der Benutzer mit der Nummer 0 (also dem Benutzer root). Unter Windows gibt es im ersten Augenblick kein equivalent, hier muss explizit ein Benutzeraccount gegeben sein. Wenn kein Benutzer angegeben ist, muss sich der Dienst als Treiber anmelden :-). Durch den bevollmächtigen Start kann ein Dienst die Identität wechseln. Bei Windows wird im Dienstemanager das entsprechende Dienstkonto eingetragen. Würde man dem Dienstkonto ein Profil geben, kann man sich auch als Benutzer anmelden. Das selbe gilt auch für Linux. Unter Linux gibt es außerdem zwei Möglichkeiten den Benutzer zu wechseln. Entweder durch den Dienst selber, oder über ein Programm namens su, dem sowohl der Benutzer als auch das Programm als Parameter übergeben wird.