Ubuntu <= 11.10 Benutzer folgen dieser Anleitung für Ubuntu Benutzer> = 11.10 Lesen Sie den Hinweis auf der Unterseite:
Ja, alle diese Programme sind veraltet und alle Ihre Fragen werden hier beantwortet.
Wenn es darum geht, einen Benutzer zum Abmelden zu zwingen, geht es tatsächlich darum, zeitliche Einschränkungen für das Konto für den Systemzugriff oder die Dienste zu implementieren. Die einfachste Möglichkeit, Zeitbeschränkungen zu implementieren, ist die Verwendung eines Plug-In-Moduls namens Linux-PAM .
Pluggable Authentication Module (PAM) ist ein Mechanismus zur Authentifizierung von Benutzern. Insbesondere werden wir das pam_time
Modul verwenden, um den zeitgesteuerten Zugriff für Benutzer auf Dienste zu steuern.
Mit dem pam_time
Modul können wir zu verschiedenen Tageszeiten sowie an bestimmten Tagen oder über verschiedene Terminalleitungen Zugriffsbeschränkungen für ein System und / oder bestimmte Anwendungen festlegen. Abhängig von der Konfiguration können Sie mit diesem Modul den Zugriff auf einzelne Benutzer anhand ihres Namens, der Uhrzeit, des Wochentags, des Dienstes, für den sie sich bewerben, und des Terminals verweigern, von dem aus sie die Anfrage stellen .
Bei der Verwendung pam_time
müssen Sie die Syntax jeder Zeile (oder Regel) in der /etc/security/time.conf
Datei mit einer neuen Zeile beenden. Sie können jede Zeile mit dem Nummernzeichen [#] kommentieren, und das System ignoriert diesen Text bis zur neuen Zeile.
Hier ist die Syntax für eine Regel:
Dienstleistungen; ttys; Benutzer; Zeiten
The first field — services — is a logic list of PAM service names.
The second field — tty — is a logic list of terminal names.
The third field — users — is a logic list of users or a netgroup of users.
The fourth field — times — indicates the applicable times.
Hier ist ein Beispiel für ein typisches Regelwerk:
login ; * ; !bobby ; MoTuWeThFr0800-2000
login ; * ; !root ; !Al0000-2400
http ; * ; !bobby ; MoTuWeThFr0800-2000
http ; * ; !root; !Al0000-2400
Diese Regeln verhindern, dass sich Benutzer von Bobby zwischen 08:00 und 2000 anmelden können, und sie beschränken auch den Internetzugang während dieser Zeiten. Root kann sich jederzeit anmelden und jederzeit im Internet surfen.
Hinweis: Das System protokolliert Fehler mit diesen Regeln als syslog (3).
Mit Ubuntu Linux ist es möglich, Ihrem Computer Zeitbeschränkungen zuzuweisen, um die Verbindung eines oder mehrerer Benutzer mit Ihrem System zu verhindern. Mit den zeitlichen Einschränkungen können Sie beispielsweise den Zugriff auf den Computer für Ihre Kinder einschränken (eine Art Kindersicherung , kurz gesagt) oder sogar die Verbindung zu Ihrem Server zu bestimmten Zeiten schützen.
Manuelle Konfiguration
Verstehe, was du tun wirst
In diesem Lernprogramm werden PAM (Pluggable Authentication Modules, Englisch Pluggable Authentication Modules) verwendet. Sie können die Benutzerauthentifizierung steuern, wenn eine Verbindung hergestellt wird. Anschließend definieren wir anhand der Sicherheitskonfigurationsdateien die zulässigen Anmeldestunden. Diese Manipulationen können auf jeder Ubuntu-Version durchgeführt werden und erfordern nur einen einfachen Texteditor (vim, emacs, nano, gedit, kate, um nur einige zu nennen). Aktivieren Sie die Stundenbeschränkungen über das PAM-Modul
Gehen Sie zunächst zu /etc/pam.d/
, wo sich alle konfigurierbaren Dienste befinden:
$ Ls /etc/pam.d/
atd common-account common-session gdm login ppp sudo
chfn common-auth cron gdm-autologin Other samba
chsh common-cupsys gnome-screensaver password passwd su
Wenn wir die Verbindung zum Computer blockieren möchten, müssen wir den GDM-Dienst ändern. Bearbeiten Sie die Datei so gdm und fügen Sie diese Codezeile (am Ende der Datei) hinzu:
account required pam_time.so
GDM ist die Anmeldebildschirm-Distributionen Ubuntu, Edubuntu und Xubuntu. Für Kubuntu, das KDE verwendet, wird der kdm-Dienst aufgerufen. Dies ist die Datei, die geöffnet wird. Und fertig mit der Konfiguration des PAM! Dies ermöglicht die Kontrolle der Stunden für diesen Dienst.
Wenn Sie einen Server haben, haben Sie wahrscheinlich keine GUI. In diesem Fall ist GDM / KDM nicht installiert und die Verbindung wird nicht blockiert. Um eine Verbindung zu TTY zu verhindern, müssen Sie die Anmeldung derselben Datei ändern und dieselbe Codezeile hinzufügen, die zuvor bestätigt wurde. Diese Aktion gilt auch für Personen, die eine grafische Benutzeroberfläche installiert haben und den Zugriff auf den Anmeldebildschirm und die Terminals blockieren möchten.
Konfigurieren Sie die Zugriffszeiten
Nachdem der PAM-Dienst aktiviert wurde, müssen wir nur noch Zugriffszeiten konfigurieren. Öffnen Sie die /etc/security
. Es stehen verschiedene Konfigurationsdateien zur Verfügung:
$ Ls /etc/security/
access.conf namespace.conf pam_env.conf
group.conf namespace.init time.conf
limits.conf opasswd time.conf.bak
Bearbeiten Sie die Datei time.conf
. Einige Erklärungen und Beispiele (englisch) zur Einführung des. Kopieren Sie zum Festlegen von Zugriffszeitplänen die folgende Codezeile und fügen Sie sie ein (wie immer am Ende der Datei):
*;*;user;scheduler
Geben Sie anstelle des Benutzerfelds das Anmeldekonto ein, das Sie sperren möchten.
Wenn Sie mehrere Benutzer sperren möchten, geben Sie ihre Anmeldedaten in einer Reihe ein, die durch | getrennt sind Operator. Wenn ich zum Beispiel die Konten von Patrick, John und Emily einfrieren möchte:
*;*;Patrick|jean|emilie;scheduler
Wenn Sie den Zugriff auf das System für alle Benutzer außer einem bestimmten Benutzer blockieren möchten, verwenden Sie die! vor dem Betroffenen. Wenn ich zum Beispiel möchte, dass allen Benutzern außer Nicolas und Xavier der Zugriff auf den Computer verweigert wird:
Nicolas *;*;!|xavier;scheduler
Wenden wir uns nun den Feldzonen zu. In diesem Feld ist die Auswahl von Tagen und Stunden möglich. Sie müssen zuerst den Wochentag mit den folgenden Abkürzungen angeben:
Mo : Monday Fr : Friday Wd : Sa/Su
Tu : Tuesday Sa : Saturday wk : Mo/Tu/We/Th/Fr
We : Wenesday Su : Sunday
Th : Thursday Al : All Days
Verwechseln Sie nicht die irreführenden Abkürzungen Wk und Wd! besonders schlecht im Internet identifiziert: Sie können leicht widersprüchliche Informationen finden!
Dann legen wir die Fristen fest. Diese sollten 24h formatiert sein und aus 4 Ziffern bestehen. Um beispielsweise 15:17 Uhr auf 18:34 Uhr zu beschränken, schreiben wir: 1517-1834. Damit Marie nur am Dienstag von 15:17 Uhr bis 18:34 Uhr eine Verbindung herstellen kann, erhalten wir das Ergebnis:
*;*;marie;Tu1517-1834
Verbindungen außerhalb dieser Zeiten werden gesperrt. Für Benutzer ist es möglich, die Operatoren | zu verwenden und! mehrmals angeben (das! zeigt dann an, dass alle Anmeldestunden zulässig sind, mit Ausnahme der angezeigten).
Die zwei Sterne (Wildcards) am Anfang der Codezeile sind die Felder und tty services. Da Sie den gesamten Zugriff auf das System blockieren möchten, müssen Sie nicht angeben, welchen Dienst oder welche Anzahl Sie blockieren möchten. Wenn Sie jedoch die Verwendung eines bestimmten Dienstes verhindern möchten, geben Sie ihn einfach als folgendes Beispiel an:
login;tty1|tty4|tty5;marie;!Wd0000-2400
Daher kann der Benutzer heiraten nicht an einem TTY, 4 und 5 am Wochenende verbinden.
Einige Beispiele für Einschränkungen Zeitplan
mathilde darf sich täglich von 13:20 bis 15:20 und von 16:00 bis 20:30 verbinden:
*;*;mathilde;Al1320-1520|Al1600-2030
Stone, Frank und Florian dürfen sich an Wochentagen von 14.00 bis 18.45 Uhr und am Wochenende von 14.00 bis 22.15 Uhr verbinden:
*;*;Stone|franck|florian;Wk1400-1845|Wd1400-2215
Olive darf sich nie verbinden. jessica kann sich mittwochs von 13 bis 16 uhr anmelden:
*;*;olivier;!Al0000-2400
*;*;jessica;We1300-1600
2 verschiedene Zeilen für zwei verschiedene Zeiten für jeden Benutzer Ablauf einer Sitzung
Wenn eine Sitzung abläuft (sie überschreitet die Zeit, während der der Benutzer bereits verbunden ist), kann der PAM den Benutzer erreichen. Während Mathilde während der zulässigen Zeit eine Verbindung herstellt, ist es vollkommen kostenlos, diese Stunden zu überschreiten! Dafür verwenden wir ein neues Programm: ´cron´. Diese Anwendung führt Befehle in bestimmten Zeitabständen aus. In unserem Fall verwenden wir den Befehl ´skill-KILL-u´, um den Benutzer zu trennen, wenn die Sitzung abläuft. Die Handhabung ist sehr einfach. Bearbeiten Sie einfach die Datei ´ / etc / crontab´. Fügen Sie dann die folgende Codezeile hinzu:
Minute Hour Day * * (s) root skill -KILL -u User
Ersetzen Sie nach wie vor die Minutenfelder und die gewünschte Uhrzeit. Füllen Sie dann die Tage nach gesperrten Tagen aus, oder geben Sie einfach ein Sternchen (*) ein, um alle Wochentage anzugeben. Ändern Sie abschließend das Feld, das vom zu sperrenden Anmeldekonto verwendet wird, und voila!
Tage merken das nicht so bei den cron
Jobs! Hier ist die Liste der mit diesem Programm zu verwendenden Abkürzungen:
mon : monday fri : friday
tue : tuesday sat : saturday
wed : wednesady sun : sunday
thu : thursday * : all hours
Einige Beispiele für cron
Jobs (mit Beispielen für Zeiten im vorherigen Abschnitt)
jessica kann sich mittwochs von 13 bis 16 uhr anmelden
-> Verbindung trennen: Dienstag um 16:00 Uhr.
00 16 * root * wed skill -KILL -u jessica
mathilde darf sich täglich von 13:20 bis 15:20 und von 16:00 bis 20:30 verbinden.
-> Trennen: Täglich von 20.30 bis 15.20 Uhr ET.
20 15 * * * root skill -KILL -u mathilde
30 20 * * * root skill -KILL -u mathilde
Stone, Frank und Florian dürfen sich an Wochentagen von 14:00 bis 18:45 Uhr und am Wochenende von 14:00 bis 22:15 Uhr verbinden
-> Verbindung trennen (1): Montag, Dienstag, Mittwoch, Donnerstag und Freitag um 18:45 Uhr. -> Verbindung trennen (2): Samstag und Sonntag um 22:15 Uhr.
45 18 * * mon,tue,wed,thu,fri root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
15 22 * * sat,sun root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
Der Befehl skill-KILL-u trennt den Benutzer von der GUI sowie von TTY. Es ist perfekt für Serveradministratoren geeignet. Dieser Befehl ist jedoch sofort und die Trennung erfolgt ohne Vorankündigung. Es ist daher vorzuziehen, die Installation dieses Gerätes durch Benutzer des betreffenden Rechners oder Netzwerks zu verhindern!
Es ist möglich, Benutzer mit einem wall
Befehl zu verhindern, der cron
einige Minuten vor Ablauf des Zeitrahmens gestartet wird und auf den Terminals aller Benutzer angezeigt wird.
40 18 * * Mon,Tue,wed,thu,fri root echo "end of session in 5 minutes" | wall
Um zu verhindern, dass Benutzer die GUI verwenden können, befindet sich anstelle des Befehls wall notify-send
im Paket libnotify-bin
40 18 * * Mon,Tue,wed,thu,fri stone DISPLAY=:0 notify-send "end of session in 5 minutes"
Ubuntu 11.10 Benutzer
Ich habe gesehen, dass Benutzer Probleme mit Pam haben und ich habe eine Menge Fehler darüber gesehen. Warum ist das der Grund ??? ist so einfach, dass Ubuntu 11.10 GDM nicht mehr unterstützt. Der neue Display Manager ist LightGDM. Das Problem ist, wo diese Direktive gespeichert account required pam_time.so
wird, /etc/pam.d/lightdm
oder /etc/pam.d/lightdm-autologin
aber wie?
Sie können also die folgenden 2 LightGdm-Protokolldateien überprüfen:
- /var/log/lightdm/lightdm.log
- /var/log/lightdm/x-0.log
oder führen Sie LightGdm im Debug-Modus aus:
LightDM - Fehler
oder einen Fehler melden:
Ubuntu-Bug Lightdm
Ich melde den Bug hier also drück die Daumen und warte ...