Strona 1 z 2
[+] Określony czas dostępu do komputera przez użytkownika
: 26 marca 2009, 12:25
autor: hasanek
Witam.
Ostatnio nurtuje mnie pewien problem.
Otóż na co dzień używam Debiana SIDa z KDE 3.5. Aktualizacje robię w miarę możliwości. Oczywiście jako menedżer logowania wykorzystuję
KDM. Na moim komputerze jest kilkoro użytkowników i w związku z tym mam pytanie. Czy istnieje sposób na ograniczenie dostępu do komputera w określonych godzinach dla konkretnego użytkownika, np.:
- użytkownik1 może się zalogować tylko w godzinach 8-14
użytkownik2 tylko w godzinach 15-19
użytkownik3 w godzinach 11-20
użytkownik4 nie ma żadnych ograniczeń.
Chciałbym pozbyć się ciągłych kłótni o komputer, a nie stać mnie w tej chwili na kupno następnego ;-)
Pozdrawiam i liczę na Waszą pomoc.
: 26 marca 2009, 15:17
autor: noworol
Można łatwo coś takiego zrobić używając crona i komendy passwd. Określeni użytkownicy będą mogli zalogować się tylko w podanych godzinach. Najpierw lektura:
klik1 klik2
Z lektury ,,man passwd'', dowiadujemy się, że komenda
blokuje dostęp do konta użytkownika, a
ten dostęp przywraca. W terminalu, z uprawnieniami roota.
Sprawdzamy czy cron jest zainstalowany:
Sprawdzamy czy jest uruchomiony:
Jeśli wszystko jest dobrze, przystępujemy do edycji:
W tym przypadku wpisujemy:
Kod: Zaznacz cały
0-59 8-13 * * * root passwd -u użytkownik1
0-59 14-23,0-7 * * * root passwd -l użytkownik1
0-59 15-18 * * * root passwd -u użytkownik2
0-59 19-23,0-14 * * * root passwd -l użytkownik2
0-59 11-19 * * * root passwd -u użytkownik3
0-59 20-23,0-10 * * * root passwd -l użytkownik3
Zapisujemy: ctrl+o enter ctrl+x.
: 26 marca 2009, 18:25
autor: giaur
@noworol
Jestes pewien tego co mowisz? Bo ja twierdze ze nic z tego nie wyjdzie. Juz predzej anacron by cos pomogl.
: 27 marca 2009, 20:12
autor: hasanek
Witam.
Dzięki za rozwiązanie, wygląda na to że działa tak jak powinno, tylko zaobserwowałem jedną uciążliwość. Mianowicie te wpisy crontab są wykonywane co minutę, a co za tym idzie do użytkownika root co minutę jest wysyłany przez system e-mail z wykonania polecenia, więc skrzynkę mam zasypaną niepotrzebnymi informacjami. Czy można jakoś wyłączyć wysyłanie powiadomień e-mail po poprawnym wykonaniu polecenia?
Pozdrawiam.
: 27 marca 2009, 20:45
autor: maciejr2
Dodać na końcu polecenia:
: 27 marca 2009, 20:49
autor: lessmian2
Chyba bardziej gdzieś na początku pliku:
:-)
: 27 marca 2009, 23:12
autor: noworol
Rozwiązanie z cronem niezbyt eleganckie, w tym wypadku słusznie można użyć czegoś bardziej odpowiedniego, np. tak jak Giaur sugeruje -> anacrona. Jest też fcron i działa na podobnej zasadzie jak anacron. Nie miałem wiele styczności z anacronem, a też składnia fcrona wydaje mi się bardziej zrozumiała, dlatego krótki opis jak zrobić to w fcronie, jako root:
Instalacja:
Stworzenie fcrontab:
Kod: Zaznacz cały
touch /etc/fcrontab
fcrontab -n /etc/fcrontab -u root
Edycja fcrontab:
Zawartość fcrontab:
Kod: Zaznacz cały
SHELL=/bin/bash
!mail(false)
%hours 0-59 8-13 * * * passwd -u użytkownik1
%hours 0-59 14-23,0-7 * * * passwd -l użytkownik1
%hours 0-59 15-18 * * * passwd -u użytkownik2
%hours 0-59 19-23,0-14 * * * passwd -l użytkownik2
%hours 0-59 11-19 * * * passwd -u użytkownik3
%hours 0-59 20-23,0-10 * * * passwd -l użytkownik3
Polecenia wykonają się po starcie systemu, raz w określonych godzinach i nie będzie maili. Dodatkowo, tu znajdziesz dokumentację fcron'a:
klik
: 28 marca 2009, 14:07
autor: Ister
Wytłumaczcie mi jedną rzecz - dlaczego każecie cronowi wykonywać te komendyu przez cały czas co minutę? Przecież wystarczyłoby zmienić raz status na początku i raz na końcu wyznaczonego okresu.
W przypadku crona wyglądałoby to tak (w innych się nie wypowiem, ale pewnie jakoś podobnie):
Kod: Zaznacz cały
0 8 * * * root passwd -u użytkownik1
0 14 * * * root passwd -l użytkownik1
0 15 * * * root passwd -u użytkownik2
0 19,0 * * * root passwd -l użytkownik2
0 11 * * * root passwd -u użytkownik3
0 20 * * * root passwd -l użytkownik3
Pytanie jeszcze, czy nie należałoby wylogować aktualnie zalogowanego użytkownika z zakończeniem wyznaczonego dla niego czasu?
: 28 marca 2009, 15:37
autor: lessmian2
Ister zauważ że jeśli komputer zostanie włączony np. o 14:15, a w cronie wpis blokujący dostęp dla użytkownika1 ma się wykonać o 14:00 to to nie zadziała. Tak samo sprawa ma się z odblokowaniem konta. To już chyba lepiej wykonywać to co minutę. A może by tak dopisać do .bash_profile każdego użytkownika i prostą regułkę sprawdzającą godzinę i ew. wylogowującą użytkownika w określonych godzinach?
: 28 marca 2009, 18:00
autor: Ister
Zdecydowanie jestem zwolennikiem nie obciążania komputera tam gdzie nie potrzeba. To już raczej napisać skrypt sprawdzający przy starcie godzinę i ustawiający odpowiednie uprawnienia.
Albo metoda podana przez Ciebie z .bash_profile