Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:mehrfachanmeldung]] 
no way to compare when less than two revisions

Unterschiede

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 "dramatisch", wenn sich mehrere Nutzer mit denselben Zugangsdaten gleichzeitig anmelden, da die gesamten Profildaten auf dem Netzlaufwerk liegen und somit **eine Zerstörung des Accounts vorprogramiert ist**.
 +
 +Mit dem folgenden Skript kann man eine Mehrfachanmeldung unterbinden und der betreffende User erhält zudem eine Rückmeldung.
 +
 +==== Skript ====
 +
 +Voraussetzungen:
 + 
 +  - zenity installieren <code> sudo apt-get install zenity </code>
 +  - 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: <code>#!/bin/bash 
 +
 +# Überprüfen, ob die Datei .userlock im Homeshare vorhanden ist und wenn ja, dann 1 ausgeben --> Ausgabe in Variable LOCK schreiben
 +LOCK=$(ls -a /$HOME/ | grep -c .userlock)
 +
 +# Testen, ob Variable LOCK mit 1 belegt ist
 +if test "$LOCK" = "1" ; then
 +
 +# 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" --timeout 5
 +sudo /etc/init.d/gdm restart
 +
 +# wenn nein, dann Datei .userlock im Homeshare anlegen, damit keine Mehrfachanmeldung mehr möglich ist.
 +else
 +touch /$HOME/.userlock
 +
 +fi</code>
 +  - Eintrag von: sh /<Pfad_zum_Skript>/mehrfachlogin.sh in /etc/gdm/PostLogin/Default ganz oben zum Starten des Skripts nach der Authentifizierung
 +  - Eintrag von: rm -rf /$HOME/.userlock in /etc/gdm/PostSession/Default ganz unten, damit die Lockdatei bei Abmeldung wieder entfernt wird
 +  - Eintrag in die /etc/sudoers ganz unten: ALL ALL=(root) NOPASSWD: /etc/init.d/gdm, damit der Neustart des Displaymanagers ohne Passwortabfrage von jedem User ausgeführt werden kann
 +  - Conjob im Server, der Nachts alle vorhandenen .userlock - Datein in dem homeverzeichnissen löscht, falls diese durch "unsauberes" Abmelden noch vorhanden sein sollten.
 +  
 +==== User "gelocked" - was nun? ====
 +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/local/sbin/unlockuser einfügen:
 +<code>
 +
 +#!/bin/bash
 +# /usr/local/sbin/unlockuser
 +# von Jesko Anschütz, Februar 2012
 +# zur freien Verwendung, damit es glücklich macht.
 +if [ "$1" = "" ] # Ohne Benutzernamen macht das Skript keinen Sinn
 +then
 +    echo "Usage: unlockuser <username>"
 + 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 "Usage: unlockuser <username>"
 + exit 1
 +fi
 +# Toll, der Benutzer existiert... Aber ist er auch gelocked?
 +userlock=$(smbldap-usershow $1 | grep homeDirectory | awk '{print $2}')/.userlock
 +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
 +</code>
 +
 +Wenn es dann schnell gehen muss: 
 +  - einloggen als root am Server
 +  - Befehl eingeben: <code>unlock holzkopf</code> (also den Usernamen ;) feddisch
  
 [[anwenderwiki:linuxclient:mehrfachanmeldung]] anwenderwiki/linuxclient/mehrfachanmeldung.txt · Zuletzt geändert: 2013/06/30 02:15 von 127.0.0.1