Login Zeit begrenzen mit pam

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Login Zeit begrenzen mit pam

Beitrag von scientific » 21.03.2015 12:02:03

Hi Leute!

Ich stehe hier vor der Aufgabe, die Loginzeit für einzelne User zu begrenzen. Was ich schon rausgefunden habe, dürfte es hier unter Linux relativ wenig Auswahl geben.
Gefunden habe ich eine Lösung mittels pam. Was sich ja auch schon ganz gut anhört.

In der Datei vi /etc/pam.d/login die Zeile

Code: Alles auswählen

 account    requisite  pam_time.so
entkommentieren (also aktivieren).

Dann in der Datei /etc/security/time.conf z.B. folgendes einfügen:

Code: Alles auswählen

*;*;user1;Al1300-1400
Das wäre für alle Dienste auf allen ttys für user1 an allen Tagen nur die Zeit von 13-14 Uhr, wo ein Login erlaubt ist.

Das funktioniert auf den Textkonsolen auch wunderbar. Allerdings ignoriert sowohl gdm3 (hier auf Debian Jessie) als auch mdm auf LinuxMint diese Vorgabe und ein Login ist möglich.

Was könnte hier falsch laufen?

Ein weiterer Punkt ist dann der automatisierte Logout... Das wird wohl nicht so einfach zu lösen sein.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Login Zeit begrenzen mit pam

Beitrag von smutbert » 21.03.2015 12:20:07

Keine Ahnung ob das richtig ist, aber ich hätte es in die common-password geschrieben, die wird von gdm-password eingebunden und wirkt sich natürlich auch automatisch auf die Konsolen aus.

(Allein dass eigene Konfigurationsdateien für gdm existieren und dort login nicht eingebunden wird ist für mich ein Hinweis, dass gdm absichtlich sein eigenes Ding macht. Und mdm ist wahrscheinlich der Fork von gdm2?, der war meiner Meinung nach, was die Zusammenarbeit mit pam angeht, sowieso ziemlich kaputt.)

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Login Zeit begrenzen mit pam

Beitrag von scientific » 21.03.2015 12:29:35

Ich habs mittlerweile die gdm-password bzw. mdm Files entdeckt...

Aber diese Zeile in common-password einzutragen funktioniert auch. Und das sehe ich die bessere Wahl. Da es nur an einem Punkt zu konfigurieren ist.

Danke für den Schubs :)

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Login Zeit begrenzen mit pam

Beitrag von scientific » 21.03.2015 13:36:33

Hast du auch noch eine Idee, wie die Informationen aus /etc/security/time.conf auch dazu genützt werden können, um den User am Ende der Erlaubten Login-Zeit auch wieder ausloggt?

Bisher hab ich hierzu auch nur irgendwelche Lösungen mit cron gefunden...

Ich stelle mir vor, dass ein Skript jede Minute für jeden eingeloggten User einen weiteren Login versucht. Klappt der, passiert nix. Klappt der nicht, wird mittels z.B. loginctl jede Sitzung des Users beendet.
Ev. wird ein Prozess gestartet, der ab dem ersten fehlgeschlagenen Login dem User noch ein paar Minuten Zeit und eine oder mehrere Warungen gibt, bevor er ausgeloggt wird.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Login Zeit begrenzen mit pam

Beitrag von smutbert » 21.03.2015 16:34:07

Nein, ich hätte nicht einmal deine Idee mit dem Testlogin gehabt :wink:

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Login Zeit begrenzen mit pam

Beitrag von cronoik » 21.03.2015 16:58:37

Was spricht denn gegen cron?
Hilf mit unser Wiki zu verbessern!

deberik
Beiträge: 1177
Registriert: 30.09.2009 13:27:23

Re: Login Zeit begrenzen mit pam

Beitrag von deberik » 21.03.2015 17:30:11

Wenn es nicht viele User sind und nicht oft zu ändern, halte ich Skripte, die nur aus einem shutdown bestehen, am einfachsten. Also z.B. mit dem Befehl

Code: Alles auswählen

shutdown -h 14:05
Oder du holst dir im Skript mit grep/awk die Zeit aus der Datei common-password und bastelst dir so den shutdown-Befehl zusammen. Dann brauchst du auch nur eine Datei zu ändern.
Debians Paketbeschreibungen übersetzen? Hilf mit!

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Login Zeit begrenzen mit pam

Beitrag von scientific » 21.03.2015 19:00:26

Nun... das mit dem Testlogin ist eh nicht zu machen... Ich hatte da die Idee eines Userwechsels mittel su oder sudo als loginshell im Kopf. Aber das funktioniert so nicht.

Und was gegen cron spricht? Nun, die erlaubten Login-Zeiten sind in /etc/security/time.conf. Und für den zwangslogout muss dann bei einer Änderung auch noch ein cronjob geändert werden. Das finde ich keine gute Lösung.
Besser fände ich da einen cronjob, welcher die Datei time.conf parsen kann... und daraus dann in Erfahrung bringt, ob ein user auszuloggen ist, oder eben nicht. Und dieser Cronjob läuft dann jede Minute.

Aber ich bin echt erstaunt, dass es hier nichts wirklich brauchbares gibt. Von Auswahl noch gar nicht geträumt... :(

hab mir mal timekpr von launchpad geholt und installiert. Werde das einmal testen, ob es taugt.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Login Zeit begrenzen mit pam

Beitrag von scientific » 21.03.2015 19:04:08

Was das shutdown anbelangt... Ich möchte nicht, dass der Rechner danach ausgeschaltet wird. Es soll einfach nur dieser eine User - so eingeloggt - ausgeloggt werden. Das Ausloggen kann man auf Systemen mit systemd/logind auch mittels loginctl erledigen. Aber dann ist es wieder nicht auf z.B. linuxmint übertragbar, welches in der aktuellen Version "Rebecca" kein systemd hat. Und ich bräuchte es eigentlich für diesen linuxmint-Rechner. Aber wenn ich etwas passendes finde, dann möchte ich es auch auf div. Debian-Kisten installieren.

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main


Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Login Zeit begrenzen mit pam

Beitrag von smutbert » 21.03.2015 19:26:26

Habs jetzt nicht ausprobiert, aber wäre es eine Option pam_time.so in common-session einzubauen, damit es sich auf su auswirkt (?) und es dann wie du wolltest mit einen cron-Job mit Testlogins zu machen?
Ich meine, wenn du es auf einen oder mehrere wenige bestimmte Benutzer einschränkst, sollte es dadurch (hoffentlich) keine negativen Nebenwirkungen geben.

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Login Zeit begrenzen mit pam

Beitrag von scientific » 21.03.2015 19:38:46

Anhand der Methode von Link 1 hab ich die Loginzeitbegrenzung schon gelöst.

Das Ausloggen soll aber nicht aufgrund fehlender Useraktivität passieren, sondern wenn der Berechtigungszeitraum überschritten ist.
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Login Zeit begrenzen mit pam

Beitrag von scientific » 21.03.2015 19:41:28

Deine Methode, smutbert, muss ich noch einmal durchdenken... :-)
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
smutbert
Beiträge: 8350
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Login Zeit begrenzen mit pam

Beitrag von smutbert » 21.03.2015 20:44:02

Ist ja deine Idee. Die hat - so wie ich es verstanden habe - nur das Problem, dass die Authentifizierung mit dem Passwort und daher die Zeitlimitierung in common-password bei einem automatisierten Testlogin gar nicht zum Zuge kommt.

scientific
Beiträge: 3022
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Login Zeit begrenzen mit pam

Beitrag von scientific » 21.03.2015 20:47:13

Gibt es für pam irgendeine Methode, nur abzufragen, ob ein Login zulässig wäre?

Ich vermute fast, das ist aber eine Sackgasse bis hin zur Sicherheitslücke...
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Antworten