Moduł Sys::Lastlog

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Co to jest?

Zapewnia zorientowany obiektowo interfejs do plików lastlog na niektórych systemach uniksowych.

Składnia
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.

To są metody klasy Sys::Lastlog::Entry które dają dostęp do informacji zawartych w rekordzie.

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.

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

Dokumentacja tego modułu w cpan'ie

Kontakt i informacje o autorze opracowania

Autor modułu: Jonathan Stowe

Autor przekładu: MD

Numer GG: Słoneczko 2194164

Uniwersytet Gdański - Instytut Informatyki - Strona domowa - Perl - Wyklady
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.