Ogranicz czas, w którym użytkownik może się zalogować


9

Mamy kilka systemów Backbox 3.13 zbudowanych na Ubuntu 12.04. Jeden z moich nastolatków nie rozumie pojęcia tego, zwanego „snem” i ma tendencję do wstawania się na komputerze. Próbuję ograniczyć tę akcję. Próbowaliśmy Niania, która działała przez kilka dni. Następnie, mimo że ustawienia były nadal na swoim miejscu, nadal pozwalało wspomnianej nastolatce uzyskać dostęp do swojego konta użytkownika i Internetu.

Po kilku badaniach postanowiłem spróbować zmodyfikować /etc/security/time.conf. Najwyraźniej nie robię tego poprawnie, ponieważ bez względu na to, jakie polecenia wprowadzam do pliku, nadal możemy zalogować się na jej konto użytkownika. Nie chcemy, aby miała dostęp od 21:00 do 6:00. Nadal potrzebujemy, aby cały czas mieć dostęp do komputera. Oto kilka wypróbowanych przeze mnie składni:

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

Szaleję tutaj, próbując wymyślić, jak to zrobić. Jestem pewien, że brakuje mi czegoś prostego lub wpisuję się nieprawidłowo. Każda pomoc będzie mile widziana.


1
Spróbować login;*;daughter;A10600-2100. To powinno pozwolić na logowanie tylko między 6 rano a 9 wieczorem. Jeśli to nie zadziała, być może *;*;daughter;A10600-2100. Jeśli to zadziała, chciałbyś mieć cronpracę, która zabija sesje twojej córki o 21, ponieważ to tylko powstrzymuje rozpoczęcie nowych sesji. Oto
Warwick,

Niestety to nie zadziałało. Próbowałem się zalogować; *; córka; A10600-1900, aby przetestować rozwiązanie bezskutecznie. Próbowałem też ; ; córka; A10600-1900 bez pozytywnych wyników. To powinno działać, ale nie działa. Czy to z powodu systemu Unity?
user81117,

2
Czy skonfigurowałeś pamkorzystanie pam_time? Jeśli nie, potrzebujesz account required pam_time.soobu /etc/pam.d/gdmi /etc/pam.d/logintuż pod authwpisami.
Warwick,

Dodałem te wiersze do plików / gdm i / login, a następnie ponownie wprowadziłem informacje do pliku konfiguracyjnego. Nadal nie mamy z tego powodu radości. Teraz korzystam z Google, aby upewnić się, że wprowadziłem wiersz we właściwe miejsce w pliku / gdm.
user81117,

Według ask.fedoraproject.org/en/question/7260/… (Przepraszam za długi adres URL) powinienem zakończyć polecenie, wprowadzając nowy wiersz. Komentuję tę linię za pomocą znaku #, prawda? Mówi także, że wymagane konto pam_time.so znajduje się na końcu pliku / gdm. Wiem jedno na pewno. Gdy się zorientujesz, nie zapomnę tak szybko!
user81117,

Odpowiedzi:


1

1. Edytuj /etc/pam.d/common-auth i dodaj następujący wiersz: account required pam_time.so

2. Edytuj /etc/security/time.conf i dodaj ograniczenie: *;*;username;Al0800-2200

Ten przykład pozwala na logowanie się przy użyciu oprogramowania pamiętającego przez wszystkie dni w godzinach od 8:00 do 22:00 dziennie.


0

Czy to właśnie tutaj robisz, czy używasz takich zamiast Ls?

Ograniczenia czasowe powinny brzmieć „duża litera A, mała litera L ”, a następnie czas ...


Cześć Nigge. Próbowałem tego na dwa sposoby, ponieważ widziałem dokumentację pokazującą zarówno Al, jak i A1. Żadna z metod nie działa. Niedawno próbuję dowiedzieć się, dlaczego.
user81117,

Przykro nam, że to nie była przyczyną Twojego problemu. Kolejna rzecz do sprawdzenia, aby się upewnić: czy Twój system może używać innego DM? Spójrz w / etc / X11 / default-display-manager ...
Jan

System używa Light DM. Myślę, że kiedy zainstalowałem GDM, skonfigurowałem go dla Light DM.
user81117,

0

Następujące prace dla mnie:

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

Następujący wiersz /etc/pam.d/common-accountmoże być dodany lub niezakomentowany.

account required  pam_time.so

Mam również zadanie cron, które sprawdza o 20:00, czy jedno z dzieci jest zalogowane, i je wylogowuje, jeśli tak ... część, która faktycznie je wylogowuje, jest następująca:

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"

0

Bardziej ogólną metodą jest użycie crona do zablokowania i odblokowania konta. Eliminuje to zarówno specyficzne wymagania, jak i wszelkie zmienne związane z menedżerem okien. Jest to przeznaczone wyłącznie do samodzielnego komputera, a nie do komputera stacjonarnego / laptopa / tabletu podłączonego do centralnego serwera uwierzytelniającego.

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

UWAGA: Może być konieczne dostosowanie ścieżki dla polecenia „passwd”. Określ właściwą ścieżkę za pomocą „która”.

W moim pudełku CentOS 6:

which passwd

/usr/bin/passwd


Nie sądzę, żeby to zadziałało. Co się stanie, jeśli uwierzytelnienie nie zostanie wykonane w oparciu o lokalną bazę danych haseł ( /etc/shadow)? passwd -lmoże nawet nic nie zrobić w tym przypadku. Co się stanie, jeśli maszyna zostanie wyłączona lub zadanie cron nie uruchomi się z innego powodu? Wtedy konto może być w niechcianym stanie.
jayhendren

Nie znam żadnego systemu UNIX lub Linux, który nie uwierzytelnia się na podstawie lokalnej bazy danych haseł, chyba że jest podłączony do centralnego serwera uwierzytelniania.
Ragansi

Mój poprzedni komentarz został przedwcześnie odcięty. Nie zdałem sobie sprawy, że naciśnięcie Enter opublikowało komentarz. Tak czy siak. Jeśli maszyna zostanie wyłączona, cron może zdecydowanie pozostawić system w niepożądanym stanie. Możesz użyć crona do wywołania małego skryptu, który sprawdza czas, a następnie odpowiednio blokuje lub odblokowuje. Uruchom go co 5 minut, a nawet @reboot w cron.
Ragansi

„chyba że jest podłączony do centralnego serwera uwierzytelniającego”. Dokładnie o to mi chodzi.
jayhendren

W takim przypadku Twój centralny serwer uwierzytelniający będzie (lub powinien ...) mieć możliwość wykonywania wyżej wymienionych funkcji blokowania. W takim przypadku nie trzeba (i nie trzeba) wykonywać blokady konta użytkownika na komputerze lokalnym, chyba że coś jest skonfigurowane poza zakresem, z tym, jak ma być używane centralne uwierzytelnianie.
Ragansi
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.