Hi Andreas, Am Mittwoch 28 Mai 2008 22:23:57 schrieb Andreas Koenecke:
Eine interessante Aufgabenstellung... Ich habe aber auch keine Lösung und ich bezweifele auch, dass es da etwas Fertiges gibt. Ein Problem ist IMHO, dass es AFAIK keine standardisierte netzwerkweite Erfassung gibt, ob und wo ein User angemeldet ist. Also muss man es selbst "basteln"... Wenn ich es machen müsste, dann würde ich es so machen (Grobplanung):
- Eines der "pam_script"-Module installieren, z.B. "https://sourceforge.net/projects/pam-script/". - Ein "session-open"-Skript erstellen, dass - überprüft, ob es sich um einen der "begrenzten" Benutzer handelt (entweder Gruppenzugehörigkeit oder LDAP-Attribut). - anhand eines ggfs. selbsterstellten LDAP-Attributs (z.B. "isSession") prüft, ob schon eine Session läuft und falls ja mit einem Fehlercode abbricht. Falls noch keine Session läuft, wird "isSession" "yes" gesetzt und das Skript ohne Fehler beendet. - Ein "session-close"-Skript erstellen, dass "isSession" auf "no" setzt. - PAM konfigurieren, dass "pam_script.so" ausgeführt wird.
Prinzipiell hast du sicherlich eine (theoretisch) funktionierende Lösung, nur was machst du in dem Fall wenn der Client das isSession nicht mehr zurücksetzt? Dann stehst du da und brauchst nen Admin um es zurückzusetzen. Wenn man das so macht müsste man die session id* da rein schreiben und zwar so das sie vom pam_script auch geprüft werden kann ob sie überhaupt noch existiert. Alles was allgemein für Lockfiles gilt, gilt hier auch! *) zb. ip-adresse des Rechners und prozess-id, dann könnte man theor. prüfen ob es die session schon gibt oder nicht. Die richtige (und zwar eine die über die gesamte Sitzung erhalten bleibt) prozessid zu finden könnte allerdings in einigen Fällen einigermaßen schwierig werden, zb. wenn ein Loginmanager den login prüft und anschließend die eigentliche session eine ganz andere pid bekommt, aber vielleicht gibt es dafür ja Lösungen. zb. ein update der prozessid im isSession Attribut nachdem der start der session vollständig abgeschlossen ist, dann muß man aber wiederum sicher verhindern das aus einer laufenden session heraus noch weitere gestartet werden können. Hört sich alles nach 'much fun' an. Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org