Beschränken Sie die Zeiten, zu denen sich ein Benutzer anmelden darf

9

Wir haben mehrere Backbox 3.13-Systeme, die auf Ubuntu 12.04 basieren. Einer meiner Teenager versteht das Konzept dieser Sache namens "Schlaf" nicht und neigt dazu, aufzustehen, um am Computer zu spielen. Ich versuche diese Aktion einzuschränken. Wir haben Nanny ausprobiert, was ein paar Tage lang funktioniert hat. Obwohl die Einstellungen noch vorhanden waren, konnte der Teenager dennoch auf sein Benutzerkonto und das Internet zugreifen.

Nach einigen Recherchen habe ich mich entschlossen, Änderungen vorzunehmen /etc/security/time.conf. Anscheinend mache ich das nicht richtig, denn unabhängig davon, welche Befehle ich in die Datei eingebe, können wir uns trotzdem bei ihrem Benutzerkonto anmelden. Wir möchten nicht, dass sie von 21 bis 6 Uhr Zugang hat. Ich muss immer noch Zugriff auf den Computer haben. Hier sind einige Syntaxen, die ich ausprobiert habe:

1. login;*;username;A12100-0600
2. login;*;username;!A12100-0600
3. login;*;username;!A12100-0600
   login;*;my username;A10000-2400
4. login;*;!username;A12100-0600

Ich werde hier verrückt, wenn ich versuche herauszufinden, wie das geht. Ich bin sicher, dass es etwas Einfaches ist, das mir fehlt oder das ich falsch eingebe. Jede Unterstützung wäre dankbar.

user81117
quelle
1
Versuchen Sie es login;*;daughter;A10600-2100. Das sollte nur Anmeldungen zwischen 6 und 21 Uhr erlauben. Wenn das nicht funktioniert, dann vielleicht *;*;daughter;A10600-2100. Wenn es funktioniert, möchten Sie auch einen cronJob haben, der die Sitzungen Ihrer Tochter um 21.00 Uhr beendet, da dies nur verhindert, dass neue Sitzungen gestartet werden. Es gibt einige Details hier
Warwick
Dies hat leider nicht funktioniert. Ich habe versucht, mich anzumelden; *; Tochter; A10600-1900, um die Lösung ohne Erfolg zu testen. Ich habe es auch versucht ; ; Tochter; A10600-1900 ohne positive Ergebnisse. Das sollte funktionieren, tut es aber nicht. Liegt es am Unity-System?
user81117
2
Haben Sie pamfür die Verwendung konfiguriert pam_time? Wenn nicht, müssen Sie account required pam_time.soin beiden /etc/pam.d/gdmund /etc/pam.d/logindirekt unter den authEinträgen.
Warwick
Ich habe diese Zeilen zu den Dateien / gdm und / login hinzugefügt und dann die Informationen erneut in die Konfigurationsdatei eingegeben. Wir haben immer noch keine Freude an diesem Ende. Ich google jetzt, um sicherzustellen, dass ich die Zeile an der richtigen Stelle in der / gdm-Datei eingegeben habe.
user81117
Laut ask.fedoraproject.org/en/question/7260/… (Entschuldigung für die lange URL) sollte ich den Befehl beenden, indem ich eine neue Zeile eingebe . Ich kommentiere diese Zeile mit einem # -Zeichen, oder? Es heißt auch, dass das erforderliche Konto pam_time.so am Ende der Datei / gdm steht. Ich weiß eines sicher. Sobald dies herausgefunden ist, werde ich es nicht so schnell wieder vergessen!
user81117

Antworten:

1

1. Bearbeiten Sie /etc/pam.d/common-auth und fügen Sie die folgende Zeile hinzu: account required pam_time.so

2. Bearbeiten Sie /etc/security/time.conf und fügen Sie die Einschränkung hinzu: *;*;username;Al0800-2200

Das Beispiel ermöglicht die tägliche Anmeldung mit pam-fähiger Software an allen Tagen zwischen 8 und 22 Uhr.

Ingmar
quelle
0

Tun Sie das nur hier oder verwenden Sie diejenigen anstelle von Ls?

Die Zeitbeschränkungen sollten „Kapital A, lesen kleiner L “ und dann die Zeit ...

Jan.
quelle
Hallo Nigge. Ich habe es in beide Richtungen versucht, da ich eine Dokumentation gesehen habe, die sowohl den Al als auch den A1 zeigt. Keine der beiden Methoden funktioniert. Ich habe eine Zeit lang versucht herauszufinden, warum.
user81117
Es tut mir leid zu hören, dass dies nicht die Ursache für Ihr Problem war. Noch etwas zu überprüfen, nur um sicherzugehen: Verwendet Ihr System möglicherweise ein anderes DM? Schauen Sie in / etc / X11 / default-Display-Manager ...
Jan
Das System verwendet Light DM. Ich denke, als ich GDM installiert habe, habe ich es für Light DM eingerichtet.
user81117
0

Folgende Arbeiten funktionieren für mich:

*;*;child1|child2|child3;Wk0445-1958|Sa0445-2300|Su0445-1958

Die folgende Zeile ist /etc/pam.d/common-accountmöglicherweise etwas, das ich hinzugefügt oder nicht kommentiert habe.

account required  pam_time.so

Ich habe auch einen Cron-Job, der um 20:00 Uhr prüft, ob eines der Kinder angemeldet ist, und es abmeldet, wenn ja ... der Teil, der sie tatsächlich abmeldet, ist wie folgt:

echo 'logging off - Following children are still logged in...'
for n in $active_children ; do echo "  " $n ; done
festival --tts <<EOT
Is is bedtime. Good bye and good night.
EOT
for n in $active_children
do
    killall -HUP -u $n
done
sleep 15
for n in $active_children
do
    killall      -u $n
done
echo "[`date`] - done"
David
quelle
0

Eine allgemeinere Methode ist die Verwendung von cron zum Sperren und Entsperren des Kontos. Dadurch entfallen sowohl die spezifischen Anforderungen als auch alle Variablen, die sich auf den Fenstermanager beziehen. Dies ist nur für einen eigenständigen Computer vorgesehen, nicht für einen Desktop / Laptop / Tablet, der mit einem zentralen Authentifizierungsserver verbunden ist.

0 21 * * * /usr/bin/passwd -l childsUserName 0 6 * * * /usr/bin/passwd -u childsUserName'

HINWEIS: Möglicherweise müssen Sie Ihren Pfad für den Befehl 'passwd' anpassen. Bestimmen Sie den richtigen Pfad mit 'welche'.

Auf meiner CentOS 6-Box:

which passwd

/usr/bin/passwd

Ragansi
quelle
Ich denke nicht, dass das funktionieren würde. Was ist, wenn keine Authentifizierung für die lokale Kennwortdatenbank ( /etc/shadow) durchgeführt wird? passwd -lkönnte in diesem Fall nicht einmal etwas tun. Was passiert, wenn die Maschine ausgeschaltet ist oder ein Cron-Job aus einem anderen Grund nicht ausgeführt werden kann? Dann könnte sich das Konto in einem unerwünschten Zustand befinden.
Jayhendren
Mir ist kein UNIX- oder Linux-System bekannt, das sich nicht bei der lokalen Kennwortdatenbank authentifiziert, es sei denn, es ist mit einem zentralen Authentifizierungsserver verbunden.
Ragansi
Mein vorheriger Kommentar wurde vorzeitig abgeschnitten. Ich wusste nicht, dass ich den Kommentar durch Drücken der Eingabetaste gepostet habe. Wie auch immer. Wenn die Maschine ausgeschaltet wird, kann cron das System definitiv in einem unerwünschten Zustand verlassen. Sie können cron verwenden, um ein kleines Skript aufzurufen, das die Uhrzeit überprüft und dann entsprechend sperrt oder entsperrt. Führen Sie es alle 5 Minuten aus oder sogar @reboot in cron.
Ragansi
"es sei denn, es ist mit einem zentralen Authentifizierungsserver verbunden". Genau das meine ich.
Jayhendren
In diesem Fall verfügt (oder sollte ...) Ihr zentraler Authentifizierungsserver über die Funktionen, um die oben genannten Sperrfunktionen auszuführen. In diesem Fall müssten (und sollten) Sie keine Benutzerkontosperrungen auf dem lokalen Computer durchführen, es sei denn, etwas ist außerhalb des Gültigkeitsbereichs konfiguriert und es ist vorgesehen, wie die zentrale Authentifizierung verwendet werden soll.
Ragansi