Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | anwenderwiki:linuxclient:mehrfachanmeldung [2013/06/30 02:15] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Mehrfachanmeldung unterbinden ====== | ||
+ | |||
+ | ==== Allgemeines ==== | ||
+ | |||
+ | Davon abgesehen, dass eine Mehrfachanmeldung per Nutzungsverordung prinzipiell verboten gehört, ist es bei Linuxclients besonders " | ||
+ | |||
+ | Mit dem folgenden Skript kann man eine Mehrfachanmeldung unterbinden und der betreffende User erhält zudem eine Rückmeldung. | ||
+ | |||
+ | ==== Skript ==== | ||
+ | |||
+ | Voraussetzungen: | ||
+ | |||
+ | - zenity installieren < | ||
+ | - Skriptdatei mehrfachlogin.sh z.B. unter /skripte anlegen. Rechte auf 711 setzen, damit nur root die Datei lesen und schreiben kann und alle anderen sie nur ausführen können | ||
+ | - Folgenden Code in die Skriptdatei einfügen: < | ||
+ | |||
+ | # Überprüfen, | ||
+ | LOCK=$(ls -a /$HOME/ | grep -c .userlock) | ||
+ | |||
+ | # Testen, ob Variable LOCK mit 1 belegt ist | ||
+ | if test " | ||
+ | |||
+ | # wenn ja, dann 5 sec Meldung wegen Mehrfachanmeldung und anschließend Neustart des Displaymanagers | ||
+ | zenity --error --text "Der Benutzer ist schon auf einem anderen Rechner angemeldet" | ||
+ | sudo / | ||
+ | |||
+ | # wenn nein, dann Datei .userlock im Homeshare anlegen, damit keine Mehrfachanmeldung mehr möglich ist. | ||
+ | else | ||
+ | touch / | ||
+ | |||
+ | fi</ | ||
+ | - Eintrag von: sh /< | ||
+ | - Eintrag von: rm -rf / | ||
+ | - Eintrag in die / | ||
+ | - Conjob im Server, der Nachts alle vorhandenen .userlock - Datein in dem homeverzeichnissen löscht, falls diese durch " | ||
+ | | ||
+ | ==== User " | ||
+ | Früher oder später passiert es, dass ein Lock-File die Anmeldung unerwünscht verhindert. Grundsätzlich kein Problem, die .userlock-Datei im Home des betreffenden Users zu löschen, aber schöner, wenn es dafür einen Befehl gibt: | ||
+ | |||
+ | folgenden Code in die (neu anzulegende) Datei usr/ | ||
+ | < | ||
+ | |||
+ | #!/bin/bash | ||
+ | # / | ||
+ | # von Jesko Anschütz, Februar 2012 | ||
+ | # zur freien Verwendung, damit es glücklich macht. | ||
+ | if [ " | ||
+ | then | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | |||
+ | # Erstmal checken, ob der gewünschte Benutzer überhaupt existiert: | ||
+ | |||
+ | smbldap-usershow $1 > /dev/null | ||
+ | if [ $? != 0 ] | ||
+ | then | ||
+ | echo Sorry, aber den User $1 gibt es gar nicht... | ||
+ | echo " | ||
+ | exit 1 | ||
+ | fi | ||
+ | # Toll, der Benutzer existiert... Aber ist er auch gelocked? | ||
+ | userlock=$(smbldap-usershow $1 | grep homeDirectory | awk ' | ||
+ | if [ -f $userlock ] | ||
+ | then | ||
+ | # Er ist gelocked, also machen wir das Lock weg. | ||
+ | echo Userlock im Homeverzeichnis von $1 existiert... wird entfernt... | ||
+ | rm $userlock && echo Löschen erfolgreich || echo Löschen nicht erfolgreich | ||
+ | else | ||
+ | # Er ist nicht gelocked, dann haben wir nichts mehr zu tun. | ||
+ | echo Der Benutzer $1 ist gar nicht gelocked... Holzkopf! | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | # Ein letzter Check, ob das Lock auch wirklich weg ist: | ||
+ | |||
+ | if [ -f $userlock ] | ||
+ | then | ||
+ | echo $1 ist immer noch ausgesperrt! Ich konnte nicht helfen. Das ist ein Problem! | ||
+ | exit 1 | ||
+ | else | ||
+ | echo $1 darf sich wieder anmelden! | ||
+ | fi | ||
+ | </ | ||
+ | |||
+ | Wenn es dann schnell gehen muss: | ||
+ | - einloggen als root am Server | ||
+ | - Befehl eingeben: < | ||