login

Autres langues

Langue: pl

Autres versions - même langue

Version: 4 listopada 1996 (fedora - 25/11/07)

Autres sections - même nom

Section: 1 (Commandes utilisateur)

NAZWA

login - zalogowanie się w systemie

SKŁADNIA

login [ nazwa ]
login -p
login -h nazwa_serwera
login -f nazwa

OPIS

login jest używany, aby dostać się do systemu. Może być również stosowany do przełączania się między różnymi kontami (jednak większość nowoczesnych powłok ma tę możliwość wbudowaną).

Jeżeli nie podano żadnego argumentu, login prosi o nazwę użytkownika.

Jeżeli użytkownik nie jest superużytkownikiem (rootem) oraz istnieje plik /etc/nologin, wypisywana jest zawartość tego pliku i proces logowania jest kończony (porażką). Ten sposób jest zwykle używany podczas wyłączania systemu.

Jeżeli danego użytkownika dotyczą ograniczenia opisane w pliku /etc/usertty, muszą być spełnione ich warunki; w przeciwnym wypadku wstęp do systemu zostanie uniemożliwiony i odpowiedni komunikat zostanie umieszczony w logu systemowym. Zajrzyj do sekcji "Wyjątkowe ograniczenia dostępu".

Jeżeli użytkownik jest superużytkownikiem, zalogowanie może dojść do skutku tylko z jednej z konsol wymienionych w pliku /etc/securetty. Nieudane próby zalogowania się będą notowane za pomocą funkcji syslog.

Po sprawdzeniu tych warunków, sprawdzone zostanie hasło (jeżeli jest wymagane dla danego użytkownika). Możliwych jest dziesięć prób, ale po pierwszych trzech kolejne żądania pojawiają się po odczekaniu pewnego czasu. Nieudane próby zalogowania są notowane funkcją syslog. Notowane są również udane logowania superużytkownika.

Jeżeli istnieje plik .hushlogin, wówczas wykonywane jest "ciche" logowanie do systemu, czyli nie jest sprawdzana skrzynka pocztowa, nie jest wypisywany czas poprzedniego zalogowania oraz wiadomość dnia (message of the day). W przeciwnym wypadku, jeżeli istnieje plik /var/log/lastlog, wypisywany jest czas poprzedniego zalogowania oraz zapisywany jest czas bieżącego rozpoczęcia sesji.

Wykonywane są rozmaite zadania administracyjne takie, jak ustawianie numerów UID oraz GID terminala (tty). Zachowywana jest zmienna środowiskowa TERM, jeżeli istnieje. Inne zmienne są zachowywane, jeżeli użyto opcji -p. Ustawiane są następnie zmienne HOME, PATH, SHELL, TERM, MAIL i LOGNAME. Zmienna PATH dostaje domyślną wartość /usr/local/bin:/bin:/usr/bin:. dla zwykłego użytkownika, lub /sbin:/bin:/usr/sbin:/usr/bin dla superużytkownika. Na końcu, jeżeli logowanie nie jest "ciche", wypisywana jest wiadomość dnia oraz sprawdzany jest plik o nazwie użytkownika w katalogu /usr/spool/mail; jeżeli ma niezerową długość, wypisywana jest odpowiednia wiadomość ("You have new mail" - przyp. tłum.).

Następnie uruchamiana jest powłoka użytkownika. Jeżeli w pliku /etc/passwd użytkownikowi nie jest przypisany żadna powłoka, używany jest wówczas /bin/sh. Jeżeli w tymże pliku nie wymieniono nazwy katalogu domowego użytkownika, używany jest katalog główny (/). W katalogu domowym jest poszukiwany plik .hushlogin, wspomniany powyżej.

OPCJE

-p
Używany przez getty(8), by login nie usuwał zmiennych środowiskowych.
-f
Opcja używana do ominięcia drugiej autoryzacji użytkownika. Ta opcja nie działa dla superużytkownika i wydaje się nie działać pod Linuksem.
-h
Opcja używana przez inne serwery (np. telnetd(8)) do przekazania nazwy zdalnego komputera programowi login, by można ją było umieścić w plikach utmp oraz wtmp. Tej opcji może używać wyłącznie superużytkownik.

WYJĄTKOWE OGRANICZENIA DOSTĘPU

Superużytkownik może logować się wyłącznie z tych terminali, których nazwy wymieniono w pliku /etc/securetty. W każdej linii podawana jest nazwa jednego urządzenia tty (bez przedrostka /dev/). Jeżeli ten plik nie istnieje, superużytkownik może się zalogować z dowolnego terminala.

Plik /etc/usertty wprowadza dodatkowe ograniczenia dostępu dla konkretnych użytkowników. Jeżeli ten plik nie istnieje, nie są narzucane żadne dodatkowe ograniczenia dostępu. W pliku znajdują się kolejne sekcje. Istnieją ich trzy typy: CLASSES, GROUPS i USERS. Sekcja CLASSES definiuje klasy terminali i wzorce dla nazw serwerów. Sekcja GROUPS definiuje dozwolone terminale i komputery w ramach grupy, natomiast sekcja USERS definiuje powyższe dla konkretnych użytkowników.

Długość żadnej linii tego pliku nie może przekroczyć 255 znaków. Komentarze zaczynają się od znaku #; wszystkie następne znaki aż do końca linii są ignorowane.

Sekcja CLASSES

Sekcja CLASSES rozpoczyna się słowem CLASSES na początku linii (same wielkie litery). Wszystkie kolejne linie do rozpoczęcia kolejnej sekcji lub do końca pliku składają się z sekwencji słów rozdzielonych spacjami lub tabulatorami. Każda linia definiuje klasę terminali i wzorzec nazwy serwera.

Pierwsze słowo w linii staje się wspólną nazwą dla terminali i wzorców nazw serwerów opisanych w dalszej części linii. Wspólna nazwa może być używana w następujących niżej sekcjach GROUPS i USERS. Żadna z takich nazw klas nie może wystąpić w treści definicji klasy, by uniknąć prób rekurencyjnego opisu klas.

Przykładowa sekcja CLASSES:

 CLASSES
 mojaklasa1              tty1 tty2
 mojaklasa2              tty3 @.foo.com
 

Definuje ona klasy mojaklasa1 oraz mojaklasa2 jako opis treści występującej po prawych stronach obu linijek.

Sekcja GROUPS

Sekcja GROUPS definiuje terminale i serwery dozwolone dla grupy. Jeżeli użytkownik, zgodnie z plikami /etc/passwd i /etc/group, należy do grupy oraz jego grupa jest wymieniona w sekcji GROUPS w pliku /etc/usertty, wówczas może się zalogować, jeżeli jest to dozwolone dla grupy.

Sekcja GROUPS rozpoczyna się od słowa GROUPS na początku linii (same wielkie litery); każda następna linia składa się z ciągu słów porozdzielanych spacjami lub tabulatorami. Pierwsze słowo w linii jest nazwą grupy, a następne określają terminale i serwery, z których członkowie tej grupy mają dostęp. Może to wymagać użycia klas zdefiniowanych w jednej z poprzedzających sekcji CLASSES.

Przykładowa sekcja GROUPS.

 GROUPS
 sys             tty1 @.bar.edu
 stud            mojaklasa1 tty4
 

Ten przykład pozwala członkom grupy sys logować się na terminalu tty1 z serwerów w domenie bar.edu. Użytkownicy należący do grupy stud mogą logować się z terminali/serwerów wymienionych w klasie mojaklasa1 lub z terminala tty4.

Sekcja USERS

Sekcja USERS rozpoczyna się od słowa USERS na początku linii (same wielkie litery); każda następna linia składa się z ciągu słów porozdzielanych spacjami lub tabulatorami. Pierwsze słowo w linii jest nazwą użytkownika, któremu wolno logować się z terminali i serwerów wymienionych w dalszej części linii. Może to wymagać użycia nazwy klasy zdefiniowanej w jednej z poprzedzających sekcji CLASSES. Jeżeli na początku pliku nie ma nagłówka, pierwsza sekcja jest domyślnie sekcją USERS.

Przykładowa sekcja USERS:

 USERS
 zacho           tty1 @130.225.16.0/255.255.255.0
 blue            tty3 mojaklasa2
 

Użytkownik zacho może logować się tylko z terminala tty1 i z serwerów o adresach IP w zakresie od 130.225.16.0 do 130.225.16.255. Użytkownik blue może logować się z terminala tty3 oraz z terminali/serwerów wymienionych w klasie mojaklasa2.

W sekcji USERS może wystąpić linia rozpoczynająca się od *. Taka definicja będzie się odnosiła do wszystkich użytkowników nie zdefiniowanych oddzielnie w innej linii (domyślny użytkownik).

Jeżeli użytkownik odpowiada zarówno jednej z linii w sekcji USERS, jak i w sekcji GROUPS, ma on dostęp do systemu z wszystkich terminali/serwerów wymienionych w obydwu dotyczących go liniach.

Źródła

Definicje terminali i serwerów używane w specyfikacjach klas nazywane są źródłami (origins). Opis źródła może mieć jedną z poniższych postaci:
o
Nazwa terminala bez przedrostka /dev/; na przykład tty1 lub ttyS0.
o
Ciąg @localhost, oznaczający, że użytkownik może się połączyć przez telnet lub rlogin z lokalnego serwera do niego samego. Pozwala to również na wykonywanie np. polecenia xterm -e /bin/login.
o
Przyrostek z nazwą domeny, np. @.jakaś.domena oznaczajacy, że użytkownik może łączyć się przez rlogin/telnet z dowolnego serwera, którego nazwa domeny kończy się na .jakaś.domena.
o
Zakres adresów IPv4, zapisany jako @x.x.x.x/y.y.y.y, gdzie x.x.x.x jest adresem IP w zwykłej notacji (liczby dziesiętne rozdzielone kropkami), a y.y.y.y jest maską bitową w tej samej notacji określającą, które bity w adresie należy porównać z adresem zdalnego serwera. Na przykład, @130.225.16.0/255.255.254.0 oznacza, że użytkownik może się łączyć przez rlogin/telnet z dowolnego serwera, które adres leży w zakresie 130.225.16.0 - 130.225.17.255.

Każde z powyższych źródeł może być poprzedzone określeniem czasu zgodnie z następującą składnią:

 czas              ::= '[' <dzień-lub-godz> [':' <dzień-lub-godz>]* ']'
 dzień             ::= 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
 godz              ::= '0' | '1' | ... | '23'
 zakres_godzin     ::= <godz> | <godz> '-' <godz>
 dzień-lub-godzina ::= <dzień> | <zakres_godzin>
 

Na przykład, źródło postaci [mon:tue:wed:thu:fri:8-17]tty3 oznacza, że logowanie się jest dozwolone od poniedziałku do piątku między godziną 8:00, a 17:59 na terminalu tty3. Widać również, że zakres godzin a-b obejmuje cały czas pomiędzy a:00, a b:59. Pojedyncza godzina (np. 10) oznacza czas pomiędzy 10:00, a 10:59.

Nieokreślanie zakresu czasu przed terminalem/serwerem oznacza, że logowanie z tego źródła jest dozwolone w dowolnym momencie. Jeżeli określasz czas, miej pewność, że określasz zarówno zakres dni, jak i godzin (lub pojedynczą godzinę). W określeniu czasu nie mogą się znajdować żadne białe spacje.

Jeżeli nie istnieje domyślny użytkownik (*), użytkownicy nie wymienieni w żadnej z linii pliku /etc/usertty mogą się logować skądkolwiek, co odpowiada standardowemu zachowaniu się programu login.

PLIKI

 /var/run/utmp
 /var/log/wtmp
 /var/log/lastlog
 /usr/spool/mail/*
 /etc/motd
 /etc/passwd
 /etc/nologin
 /etc/usertty
 .hushlogin
 

ZOBACZ TAKŻE

init(8), getty(8), mail(1), passwd(1), passwd(5), environ(7), shutdown(8)

PROBLEMY

GNU/Linux, w przeciwieństwie do innych systemów operacyjnych o drakońskich restrykcjach, nie sprawdza udziałów (quotas) dyskowych.

Nieudokumentowana opcja -r z systemu BSD nie działa. Może to być wymagane przez niektóre programy rlogind(8).

AUTOR

Program pochodzi od oryginalnej wersji BSD login 5.40 (9-5-89), której autorem był Michael Glad (glad@daimi.dk) (dla systemu HP-UX).
Dostosowanie do Linuksa 0.12: Peter Orbaek (poe@daimi.aau.dk)