Moduł Sys::Lastlog
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaCo to jest?
- Składnia
Zapewnia zorientowany obiektowo interfejs do plików lastlog na niektórych systemach uniksowych.
use Sys::Lastlog;
my $ll = Sys::Lastlog->new();
while(my $llent = $ll->getllent() ) {
print $llent->ll_line(),"\n";
}
Pliki lastlog dostarczone przez unikso-podobne systemy przechowują informacje na temat kiedy każdy użytkownik był zalogowany w systemie. Pliki są dostępne sekwencyjnie oraz indeksowanie poprzez UID (można powiedzieć że użytkownik z UID równym 500 będzie posiadał 500 wpis w pliku). Większość systemów dostarcza interfejs w języku C dostępu do pliku, oraz program o nazwie 'lastlog' który zapewnia własne metody dostępu.
Ten moduł dostarcza obiektowo zorientowany Perlowy interfejs dostępu do pliku. aby programy takie jak 'lastlog' mogły zapisywać w Perlu (na przykład 'plastlog' progam w tej dystrybucji), bądź też programy te mogą ustalić ostanie logowanie dla własnych celów.
Moduł ten dostarcza trzy metody dostępu sekwencyjnego do logów, poprzez UID bądź też poprzez nazwę użytkownika. Każda metoda zwraca obiekt typu Sys::Lastlog::Entry który dostarcza metody dostępu do informacji każdego rekordu.
Zapisywanie kiedy ostatni użytkownik logował się w systemie, nie jest tak ważne w domowych komputerach jak na serwerach. Dzięki logom można chociażby usuwać użytkowników którzy nie korzystają z kont od dłuższego czasu. Logowanie ma również zastosowanie w bezpieczeństwie. Możemy sprawdzić kto w chwili awarii bądź ataku był zalogowany w systemie. Najprostszym przykładem kiedy korzysta się z "lastlog" jest wypisywanie monitu powitalnego po zalogowaniu się w systemie poprzez ssh.
Metody
- new
Konstruktor klasy. Zwraca obiekt dzięki któremu inne metody mogą zostać wywołane.
- getllent
Ta metoda sekwencyjnie zwraca kolejny rekord z laslog za każdym razem kiedy jest wywołana, zwraca wartość fałsz kiedy nie ma już rekordów do przeczytania i zwrócenia. Ponieważ plik laslog jest indeksowanych przez UID jeśli istnieją luki w alokacji UID'ow w systemie będzie wtedy właśnie tyle pustych rekordów zwróconych (można powiedzieć, że jeśli z jakiegoś powodu nie ma UID'ów używanych pomiędzy 200 a 500 metoda ta zwróci nie mniej jak 299 pustych rekordów).
- getlluid SCALAR $uid
Ta metoda zwróci rekord o określonym przez $uid identyfikatorze, lub wartość fałsz jeśli UID jest poza zasięgiem, jednak nie dokonuje żadnego sprawdzenia czy rzeczywiście UID istnieje, po prostu musi być mniejszy od maksymalnego UID obecnie przydzielonego w systemie.
- getllnam SCALAR $logname
Metoda ta zwróci rekord odpowiadający nazwie użytkownika $logname bądź też fałsz jeśli nie ma takiego użytkownika.
- setllent
Ustawia wskaźnik pliku lastlog znowu na początek, aby można było powtarzać iteracje po pliku używając getllent()
Metody dotyczące rekordów.
- uid
UID odpowiadający rekordowi.
- ll_time
Czas w sekundach od czasu epoch ostatniego logowania użytkownika.
- ll_line
Połączenie (np. terminal) którym dany użytkownik się logował.
- ll_host
Host z jakiego dany użytkownik zalogował się. Pusty napis jeśli było to z lokalnej maszyny.
To są metody klasy Sys::Lastlog::Entry które dają dostęp do informacji zawartych w rekordzie.
Przyklad
Przykładkowy program:
use Sys::Lastlog;
my $ll = Sys::Lastlog->new();
while(my $llent = $ll->getllent() ){
if(length $llent->ll_line() ){
print $llent->ll_line()," ",$llent->ll_host()," ",
$llent->ll_time()," ",$llent->uid(),"\n"
}
}
Program ten wyświetla niepuste wpisy. A oto wynik uruchomienia tego programu, dla porównania wyników wyświetlone zostało również wyjście programu "lastlog".
Dodatkowe informacje.
- Przydatne linki
Kontakt i informacje o autorze opracowania
Autor modułu: Jonathan Stowe
Autor przekładu: MD
Numer GG: 2194164