Moin,
Von: Marcel Stein [mailto:marcel-stein@arcor.de]
Hallo!
Wenn sich ein User beim samba einloggt dann hat er die ganze Zeit eine Verbindung.
Benutzt Du Samba als PDC? Dann loggt sich der Benutzer mit dem Start des Rechners beim PDC ein, lädt sich sein Profil und läuft sein Login-Script durch. Damit stehen dann auch alle Verbindungen. Er kann sich dann jederzeit über sein "Start" Menü auch wieder ausloggen - bei Windows NT/2000 landet er damit dann wieder auf dem Anmeldeschirm.
Erst wenn ich den Win Client neu starte muss ich mich neu einloggen. Wie kann ich das umgehen?
Gar nicht. Meine Frage wäre hier: wozu auch? Wenn ich User x so vertraue, daß er sich bei mir über SMB/CIFS anmelden kann, warum soll ich ihm dann nach einer bestimmten Zeit dieses Vertrauen wieder entziehen? Mit dem Neustart wird eine neue Session angefangen, und die endet mit dem Shutdown des Rechners bzw. dem Logoff des Users. That's Life under Windoof. Willst Du von Serverseite einen Logoff *aller* Nutzer forcieren, etwa um einen backup zu fahren (die so ziemlich einzig sinnvolle Situation wo man alle User vom Samba runter bekommen möchte, auch die, die sich evtl. am Abend nicht ausgeloggt haben), wirst Du den smbd herunterfahren müssen. Läuft Samba als PDC, würde ich das aber allen arbeitenden NT/2000 Clients vorher ankündigen - die können nämlich sonst evtl. nicht ihre Profile wieder auf den Server schreiben, wenn sie sich abmelden wollen under der PDC nicht vorhanden ist. Datenverluste bei einigen Anwendungen will ich dabei gar nicht mal erwähnen - gerade Windows-Anwendungen reagieren manchmal sehr ungehalten, wenn ihnen jemand auf diese Weise den Teppich unter den Füßen wegziehen will.
Das heißt das ich selbst oder nach einer gewissen Zeit die Verbindung zum Samba kappen will!
Du selbst: NET USE <devicename> /DELETE:YES löscht Deine Verbindung für Dein Device <devicename>, stellt sie aber beim nächsten Logon automatisch wieder her (persistente Verbindung), NET USE <devicename> /DELETE:NO löscht die Verbindung für Dein Device <devicename> und stellt sie auch nicht beim nächsten Login wieder her. Vom Server aus smbd herunterfahren: Per SWAT am einfachsten - Browser nehmen, auf http://localhost:901/ gehen, sich entsprechend anmelden (natürlich ein Account der auch den smbd starten/stoppen darf), Auf "Status" klicken, und dort den Server entweder starten oder stoppen. Aus dem Terminal heraus herunterfahren: Mit ps -A | grep "smbd" die PID erfahren, dann ein kill -SIGTERM <PID> bzw. kill -15 <PID> - laut man page von smbd ist ein kill -SIGKILL (bzw. kill -9) nur als "Notbremse" zu empfehlen. Im Script würde ich also nach einem SIGTERM erst einmal gucken, ob der Prozess trotzdem noch da ist, und erst nach einer gewissen Wartezeit (z.B. 60 Sekunden) dann die Notbremse mit SIGKILL ziehen. Hast Du Samba über den inetd gestartet, wirst Du wohl die inetd.conf ändern müssen und dann mit kill -HUP <inetd-PID> den inetd seine Konfigurationsdatei wieder einlesen lassen müssen. Für eine Scriptlösung ist das sicher nicht so praktisch (fällt mir jetzt spontan nix zu ein, aber mit "sed" läßt sich sicher was basteln), bei mir läuft Samba daher standalone (schon aus Performance-Gründen: mit inetd spare ich zwar Speicher, weil der jeweilige daemon nur dann gestartet wird, wenn's Not tut - aber ernte dadurch eben entsprechenden Overhead bei vielen Requests hintereinander, der typischen Situation bei Samba in einem mittleren bis größeren Netz also).
Geht das?
So wie Du das vorhast eigentlich nicht. Dazu ist SMB/CIFS nicht ausgelegt, dem Samba könnte man das evtl. ja mal beibringen - dazu wende Dich dann aber bitte an die Entwickler von Samba, wir hier können da wohl wenig ausrichten. Wenn es aber nur darum geht den jeweiligen PC vor unberechtigtem Zugriff zu schützen, lohnt ein Screensaver mit Passwort-Option auf der Client-Seite: umgehen kann den meist nur, wer den Rechner neu startet, und dann muß er sich ja auch wieder neu anmelden. Bei Windows 2000 könnte das z.B. der "Anmeldebildschirmschoner" sein - schaltet sich bei mir automatisch nach 5 Minuten Untätigkeit ein, und erspart mir so das Abmelden z.B. über die Mittagspause.
Marcel
Bis denn Gerard