Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:mehrfachanmeldung]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:linuxclient:mehrfachanmeldung [2013/06/30 00:15] (aktuell)
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 00:15 (Externe Bearbeitung)