PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Loginsperrzeit fuer Benutzer setzen



Jaus
16.09.08, 10:28
Hallo,

ich habe eine kleine Frage. Ist es moeglich die Loginsperrzeit fuer Benutzer zu setzen? Damit meine ich genau folgendes Beispiel:

Benutzer x meldet sich auf einem Rechner an, arbeitet eine Weile und meldet sich dann wieder ab. Nun darf Benutzer x sich fuer die naechsten 30 Minuten nicht mehr am System anmelden und erst nach Ablauf dieser Zeit, darf er sich erneut anmelden, usw...

Fragt nicht nach einem Sinn oder was ich damit bezwecken moechte - Ich brauche es einfach ;)

Bin fuer jeden Vorschlag dankbar!

Gruesse, Jaus

marce
16.09.08, 10:29
evtl. auf der Basis von fail2ban / iptables / div. Loganalyser

Jaus
16.09.08, 12:22
Ja, mit haufenweise Programmen es zu kombinieren waere auch mein erster Anlauf - Eventuell gibt es da ja ein Komplettpaket, das genau diese Aufgabe uebernimmt..

Newbie314
16.09.08, 13:08
Irgendwie scriptbasiert ? Beim Ausloggen wird zwangsweise ein Script aufgerufen das den Login sperrt (z.B. Shell auf false oder so / chmod auf wichtige Dateien...) und ein crond Eintrag generiert der ihn wieder freigibt

cane
16.09.08, 13:44
Benutzer x meldet sich auf einem Rechner an, arbeitet eine Weile und meldet sich dann wieder ab.

Und was ist wenn er sich nicht abmeldet sondern einfach das Fenster schließt?
Was ist wenn er screen verwendet?
...

mfg
cane

Jaus
16.09.08, 18:41
Und was ist wenn er sich nicht abmeldet sondern einfach das Fenster schließt?
Was ist wenn er screen verwendet?
...

mfg
cane
Eine Session laeuft sowieso nach 30 Minuten aus - Das ist kein Problem ;)

ThE_FiSh
17.09.08, 11:32
kann man konten nicht auch deaktivieren - hab das zwar noch nie gebraucht aber es gibt unter ubuntu glaub ich sogar nen knopf in der benutzerverwaltung dafür.

dann würd ich es einfach
deaktivieren
dann 30minuten warten
und wieder aktivieren

deaktivierte konten sollten sich ja nicht anmelden können

edit:
wofür brauchste das denn? ;)

Jaus
17.09.08, 12:48
Bei deaktivierten Benutzern wird der Shellpath einfach nur auf /dev/null gesetzt, soweit ich weiss...

Muesste also quasi per crontab die Shellpaths setzen lassen bzw. per script, das vor dem Logout durchgefuehrt wird...

marce
17.09.08, 12:49
Bei deaktivierten Benutzern wird der Shellpath einfach nur auf /dev/null gesetzt, soweit ich weiss...
Nope.

Es wird ein Flag für das PW gesetzt.

Jaus
17.09.08, 12:50
Nope.

Es wird ein Flag für das PW gesetzt.

Man lernt eben nie aus :)

ThE_FiSh
18.09.08, 10:00
Nope.

Es wird ein Flag für das PW gesetzt.

das bedeutet?

marce
18.09.08, 10:05
das:

[root@linux7 ~]# usermod -L test
[root@linux7 ~]# more /etc/shadow | grep test
test:!$1$NUeBcXjw$I6uDWDhiCnlVjjU5a8SU60:14140:0:9 9999:7:::
[root@linux7 ~]# usermod -U test
[root@linux7 ~]# more /etc/shadow | grep test
test:$1$NUeBcXjw$I6uDWDhiCnlVjjU5a8SU60:14140:0:99 999:7:::

craano
18.09.08, 10:05
Ein vorangestelltes ! in /etc/shadow bewirkt, dass man sich mit diesem Passwort nicht einloggen kann. Entferne das Zeichen wieder und der User kann sich wieder am System anmelden.

Grüße.
craano.

Jaus
19.09.08, 07:07
Gibt es denn in der Bash (alternativ in der zsh) ein Script, das automatisch beim ausloggen eines Users gestartet wird oder muss ich dafuer ebenfalls wieder einen workaround basteln?

marce
19.09.08, 07:10
z.B. .bash_logout

Sidolin
19.09.08, 08:06
Was aber garantiert zu Problemen führt wenn die bash mal nicht anständig beendet wurde.

marce
19.09.08, 08:08
zugegeben - mit einem vom User unabhängigen Cronjob würde man da sicher besser fahren...

derRichard
19.09.08, 13:54
hmmm, du könntest es mit pam_mysql und ein paar trigger in der datenbank versuchen.

zb: beim login fragt pam in der bentzertabelle das passwort ab.
das löst einen trigger aus, der den benutzer deaktiviert und einen zeitstempel setzt.
beim nächsten login schaut ein anderer trigger wie alt der zeitstempel ist und gibt den user wieder frei...

zugegeben, das wird eine sql-spielerei aber es sollte klappen.

hth,
//richard

Jaus
20.09.08, 23:07
Die Loesung mit PAM und SQL klingt fuer mich irgendwie noch am nobelsten... Die Loesung duerfte wohl zu den wenigstens Probleme fuehren und ist ziemlich unabhaengig...

Ich glaube das probiere ich mal auf einem Testserver aus. Aber danke schon mal fuer den Tip!

Fuer performantere Loesungen mit dem selben Erfolg bin ich natuerlich immer noch offen ;)