email: darw32@poczta.onet.pl


Linux - 8.Logowanie się

Logowanie się via terminal

"Nie zależy mi na członkowstwie w klubie, który akceptuje jako członków takich ludzi jak ja." (Groucho Marx)

Rysunek 8_1.1 Logowanie się poprzez terminale: interakcja pomiędzy: init, getty, login i powłoką.

Rysunek 8_1.1 obrazuje zachodzące procesy. Najpierw init uruchamia dla odpowiedniego terminala program getty. getty oczekuje powiadomienia od użytkownika (oznacza to, że użytkownik musi coś napisać). Jeżeli po drugiej stronie jest użytkownik getty wyświetli przywitanie (zawartość pliku /etc/issue) i poprosi o nazwę użytkownika, po czym uruchomi program login. login odbiera nazwę użytkownika jako parametr i prosi o hasło. Jeżeli się zgadzają program uruchamia wybraną przez użytkownika powłokę; w innym wypadku program kończy działanie (zazwyczaj najpierw daje użytkownikowi kilka prób wprowadzenia hasła). init zauważy, że proces został zakończony i uruchomi nowe getty dla terminala.

Zauważ, że tylko init tworzy nowy proces (korzystają z wywołania systemowego fork); getty, login zamieniają program, z którego zostały wywołane (za pomocą wywołania systemowego exec).

W przypadku łącz szeregowych potrzebny jest osobny program do oczekiwania na użytkownika - sprawdzenie jego obecności może być (i tradycyjnie było) trudne. getty obsługuje również ustawienia takie jak prędkość, co czyni go programem przydatnym przy tworzeniu połączeń dial-in, w przypadku których ustawienia te zmieniają się dynamicznie.

Istnieje kilka wersji programów getty i init, każda z nich ma swoje wady i zalety. Powinieneś zapoznać się ze wszystkimi udostępnianymi przez swoją dystrybucję, oraz o innych (aby znaleźć je możesz skorzystać z Mapy Oprogramowania Linuxowego). Jeżeli nie tworzysz połączeń dial-in prawdopodobnie nie musisz się zajmować getty, jednak init jest nadal ważny.