Provided by:
login_4.0.13-7ubuntu3_i386 
NAZWA
/etc/login.defs - konfiguracja logowania
OPIS
Plik /etc/login.defs definiuje specyficzną dla naszej maszyny
konfigurację pakietu shadow login. Plik ten jest wymagany. Jego
nieobecność nie wstrzyma działania systemu, ale prawdopodobnie
spowoduje nieprzewidywalne działanie.
Plik ten jest czytelnym plikiem tekstowym. Każdy z jego wierszy opisuje
jeden parametr konfiguracji. Wiersze składają się z nazwy parametru i
jego wartości, oddzielonych białym znakiem. Ignorowane są puste wiersze
i wiersze komentarzy. Komentarze rozpoczynają się od znaku '#', który
musi być pierwszym znakiem wiersza (pomijając białe znaki).
Istnieją cztery typy wartości parametrów: napisy, logiczne (boolean),
liczby i długie liczby (long numbers). Napis jest złożony z dowolnych
znaków drukowalnych. Parametr logiczny może mieć albo wartość "yes"
albo "no". Niezdefiniowanemu parametrowi logicznemu lub parametrowi,
któremu przypisano wartość inną od powyższych przypisane zostanie "no".
Liczby (zarówno zwykłe jak i długie) mogą być wartościami dziesiętnymi,
ósemkowymi (poprzedź wartość cyfrą "0") albo szesnastkowymi (poprzedź
wartość sekwencją "0x"). Maksymalne wartości zwykłych i długich
parametrów numerycznych zależą od maszyny.
Obsługiwane są następujące opcje konfiguracyjne:
CHFN_AUTH (logiczna)
Jeżeli ma wartość yes, to programy chfn i chsh będą pytać o
hasło przed dokonaniem zmian, chyba że uruchamiane są przez
superużytkownika.
CHFN_RESTRICT (napis)
Ten parametr określa, jakie wartości w polu gecos pliku passwd
mogą być zmieniane przez zwykłych użytkowników za pomocą
programu chfn Może on być dowolną kombinacją liter f, r, w, h,
oznaczających odpowiednio: Full name (pełna nazwa), Room number
(numer pokoju), Work phone (telefon służbowy) i Home phone
(telefon domowy). Jeśli parametr nie jest podany, to zmian może
dokonywać wyłącznie superużytkownik.
CONSOLE (napis)
Jeśli podana, definicja ta określa ograniczony zestaw linii, na
których dozwolone jest rozpoczynanie sesji użytkownika root.
Próby logowania użytkownika root niespełniające ustalonych tu
kryteriów zostaną odrzucone. Wartość tego pola może wystąpić w
jednej z dwu postaci: albo pełnej nazwy ścieżkowej pliku, jak na
przykład
CONSOLE /etc/consoles
albo listy linii terminalowych rozdzielonych dwukropkami, jak
poniżej:
CONSOLE console:tty01:tty02:tty03:tty04
(Zauważ, że wymienione tu nazwy nie zawierają ścieżki /dev/).
Jeżeli podano ścieżkową nazwę pliku, to każdy jego wiersz
powinien określać jedną linię terminalową. Jeśli parametr ten
nie jest zdefiniowany albo podany plik nie istnieje, to
użytkownik root będzie mógł się logować z dowolnej linii
terminalowej. Ponieważ usunięcie lub obcięcie pliku
definiującego dozwolone linie może spowodować nieautoryzowane
logowania roota, plik ten musi być chroniony. Tam, gdzie
bezpieczeństwo jest sprawą kluczową, powinna być używana postać
listy separowanej dwukropkami, co chroni przed potencjalną próbą
ataku w opisany sposób.
CONSOLE_GROUPS (napis)
XXX powinno zostać udokumentowane.
CRACKLIB_DICTPATH (napis)
XXX powinno zostać udokumentowane.
DEFAULT_HOME (logiczna)
XXX powinno zostać udokumentowane.
DIALUPS_CHECK_ENAB (logiczna)
Jeżeli ma wartość yes a plik /etc/dialups istnieje, to na
liniach telefonicznych wyszczególnionych w tym pliku są włączane
wtórne hasła (hasła telefoniczne). Plik ten powinien zawierać
listę linii telefonicznych (dialups), po jednej w wierszu, na
przykład:
ttyfm01
ttyfm02
.
.
.
ENVIRON_FILE (napis)
XXX powinno zostać udokumentowane.
ENV_HZ (napis)
Parametr ten określa wartość parametru środowiska HZ. Przykład
użycia:
ENV_HZ HZ=50
Jeżeli jest on zdefiniowany, to nie zostanie ustanowiona żadna
wartość HZ.
ENV_PATH (napis)
Parametr ten musi być zdefiniowany jako ścieżka przeszukiwania
dla zwykłych użytkowników. Przy logowaniu z UID innym niż zero,
zmienna środowiskowa PATH jest inicjowana tą właśnie wartością.
Jest to parametr wymagany; jeżeli nie zostanie zdefiniowany, to
zostanie nadana, być może niepoprawna, wartość domyślna.
ENV_SUPATH (napis)
Parametr ten musi być zdefiniowany jako ścieżka przeszukiwania
dla superużytkownika. Przy rozpoczynaniu sesji z UID równym
zero, zmienna środowiskowa PATH jest inicjowana tą właśnie
wartością. Jest to parametr wymagany; jeżeli nie zostanie
zdefiniowany, to zostanie nadana, być może niepoprawna, wartość
domyślna.
ENV_TZ (napis)
Parametr ten zawiera informację służącą do utworzenia zmiennej
środowiskowej TZ. Jego wartość musi być albo wprost wymaganą
zawartością TZ, albo pełną nazwą ścieżkową pliku zawierającego
tę informację. Przykład użycia:
ENV_TZ TZ=CST6CDT
lub
ENV_TZ /etc/tzname
Jeżeli podano nieistniejący plik, to TZ zostanie zainicjowane
pewną wartością domyślną. Jeżeli nie zdefiniowano tego
parametru to nie będzie ustawiona żadna wartość TZ.
ERASECHAR (liczba)
Tą wartością jest inicjowany terminalowy znak erase (kasowania).
Jest to obsługiwane tylko w systemach z interfejsem termio, np.
System V. Jeżeli nie podano parametru, to znak kasowania
zostanie zainicjowany na backspace. Informację powiązaną
znajdziesz w opisie KILLCHAR.
FAILLOG_ENAB (logiczna)
Jeżeli ustawiona na yes to nieudane logowania będą odnotowywane
w pliku /var/log/faillog w formacie faillog(8).
FAIL_DELAY (liczba)
Czas opóźnienia, wyrażony w sekundach, po każdej nieudanej
próbie logowania.
FAKE_SHELL (napis)
Zamiast rzeczywistej powłoki użytkownika zostanie uruchomiony
program określony wartością tego parametru. Nazwa widoczna
(argv[0]) programu będzie jednak nazwą powłoki. Program przed
uruchomieniem faktycznej powłoki może wykonywać dowolną akcję
(logowanie, dodatkowe uwierzytelnianie, banner itp.).
FTMP_FILE (napis)
Określa pełną ścieżkową nazwę pliku, w którym rejestrowane są
nieudane próby rozpoczynania sesji pracy. W przypadku nieudanej
próby logowania do pliku dopisywana jest pozycja o formacie
utmp. Zauważ, że różni się to od rejestracji niepomyślnych
logowań do /var/log/faillog, gdyż opisywana funkcja odnotowuje
wszystkie nieudane próby, podczas gdy "faillog" kumuluje
informację o porażkach danego użytkownika. Jeśli nie podano tego
parametru, to rejestracja będzie wyłączona. Powiązane informacje
znajdziesz w opisie FAILLOG_ENAB i LOG_UNKFAIL_ENAB.
GID_MAX (liczba)
GID_MIN (liczba)
Zakres identyfikatorów grup, w obrębie którego może wybierać
program groupadd.
HUSHLOGIN_FILE (nazwa)
Parametr używany do ustalenia okoliczności cichego logowania
("hushlogin"). Okoliczności te mogą być ustalone na dwa
sposoby. Po pierwsze, jeżeli wartością parametru jest nazwa
pliku, a plik ten istnieje w katalogu domowym użytkownika, to
wprowadzane są warunki cichego logowania. Zawartość pliku jest
ignorowana; sama jego obecność powoduje ciche logowanie. Po
drugie, jeżeli wartością parametru jest pełna nazwa ścieżkowa
pliku a w pliku tym znaleziona zostanie nazwa użytkownika lub
nazwa jego powłoki, to wprowadzone zostaną warunki cichego
logowania. W tym przypadku, plik powinien mieć format podobny
do:
demo
/usr/lib/uucp/uucico
.
.
.
Jeżeli nie zdefiniowano tego parametru, to warunki cichego
logowania nigdy nie wystąpią. W trakcie cichego logowanie
wstrzymane jest wyświetlanie wiadomości dnia (message of the
day), ostatniego udanego i nieudanego rozpoczęcia sesji pracy,
wyświetlanie stanu skrzynki pocztowej i sprawdzenie wieku hasła.
Zauważ, że zezwolenie na pliki cichego logowania w katalogach
domowych użytkowników pozwala im na wstrzymanie kontroli
ważności hasła. Informacje związane z tym tematem znajdziesz w
opisach MOTD_FILE, FILELOG_ENAB, LASTLOG_ENAB i MAIL_CHECK_ENAB.
ISSUE_FILE (napis)
Pełna ścieżkowa nazwa pliku wyświetlanego przed każdą zachętą do
logowania.
KILLCHAR (liczba)
Tą wartością inicjowany jest terminalowy znak kill. Jest to
obsługiwane tylko w systemach z interfejsem termio, np. System
V. Jeżeli nie podano parametru, to znak kasowania zostanie
zainicjowany na TRL/U. Informację powiązaną znajdziesz w opisie
ERASECHAR.
LASTLOG_ENAB (logiczna)
Jeśli ma wartość yes, i istnieje plik /var/log/lastlog, to w tym
pliku będzie rejestrowane poprawne rozpoczęcie sesji pracy
użytkownika (zalogowanie się). Ponadto, jeśli opcja ta jest
włączona, to podczas logowania się użytkownika będzie
wyświetlana informacja o liczbie ostatnich udanych i nieudanych
logowań. Zakończone niepowodzeniem logowania nie będą
wyświetlane jeśli nie włączono FAILLOG_ENAB. W warunkach cichego
logowanie nie będą wyświetlane informacje ani o pomyślnych ani o
niepomyślnych logowaniach.
LOGIN_RETRIES (liczba)
Dozwolona liczba prób logowania przed zakończeniem pracy
programu login.
LOGIN_STRING (napis)
XXX powinno zostać udokumentowane.
LOGIN_TIMEOUT (liczba)
XXX powinno zostać udokumentowane.
LOG_OK_LOGINS (logiczna)
XXX powinno zostać udokumentowane.
LOG_UNKFAIL_ENAB (logiczna)
Jeśli posiada wartość yes to nieznane nazwy użytkowników będą
również odnotowywane jeśli włączone jest rejestrowanie
nieudanych prób rozpoczęcia sesji. Zauważ, że niesie to ze sobą
potencjalne zagrożenie bezpieczeństwa: powszechną przyczyną
nieudanego logowania jest zamiana nazwy użytkownika i hasła,
tryb ten zatem spowoduje, że często w rejestrach nieudanych
logowań będą się odkładać jawne hasła. Jeżeli opcja ta jest
wyłączona, to nieznane nazwy użytkowników będą pomijane w
komunikatach o nieudanych próbach logowania.
MAIL_CHECK_ENAB (logiczna)
Jeżeli ma wartość yes, to użytkownik po rozpoczęciu sesji pracy
będzie powiadamiany o stanie swojej skrzynki pocztowej.
Informację związaną z tym tematem znajdziesz w opisie MAIL_DIR.
MAIL_DIR (napis)
Określa pełną nazwę ścieżkową do katalogu zawierającego pliki
skrzynki pocztowej użytkownika. Do powyższej ścieżki doklejana
jest nazwa użytkownika, tworząc w ten sposób zmienną
środowiskową MAIL - ścieżkę do skrzynki użytkownika. Musi być
zdefiniowany albo niniejszy parametr albo parametr MAIL_FILE;
jeśli nie zostaną zdefiniowane, to zostanie nadana, być może
niepoprawna, wartość domyślna. Zobacz także opis
MAIL_CHECK_ENAB.
MAIL_FILE (napis)
Określa nazwę pliku skrzynki pocztowej użytkownika. Nazwa ta
doklejana jest na koniec nazwy katalogu domowego użytkownika
tworząc zmienną środowiskową MAIL - ścieżkę do skrzynki
użytkownika. Musi być zdefiniowany albo niniejszy parametr albo
parametr MAIL_DIR; jeśli nie zostaną zdefiniowane, to zostanie
nadana, być może niepoprawna, wartość domyślna. Zobacz także
opis MAIL_CHECK_ENAB.
MD5_CRYPT_ENAB (logiczna)
Jeżeli ma wartość yes, to program passwd będzie kodować nowo
zmieniane hasła przy pomocy nowego algorytmu crypt(3), opartego
o MD-5. Algorytm ten pierwotnie pojawił się we FreeBSD i jest
też obsługiwany przez libc-5.4.38 oraz glibc-2.0 (lub wyższą) w
Linuksie. Pozwala on na używanie haseł dłuższych niż 8 znaków
(ograniczone przez getpass(3) do 127 znaków), ale nie jest
zgodny z tradycyjnymi implementacjami polecenia crypt(3).
MOTD_FILE (napis)
Określa listę rozdzielonych dwukropkami ścieżek do plików
"wiadomości dnia" (message of the day, MOTD). Jeśli podany plik
istnieje, to jego zawartość jest wyświetlana użytkownikowi
podczas rozpoczynania przez niego sesji pracy. Jeżeli parametr
ten jest niezdefiniowany lub wykonywane jest ciche logowanie, to
informacja ta będzie pomijana.
NOLOGINS_FILE (napis)
Określa pełną nazwę ścieżkową pliku zabraniającego logowań dla
użytkowników innych niż root. Jeżeli plik ten istnieje a
użytkownik inny niż root usiłuje się zalogować, to wyświetlana
zostanie zawartość pliku a użytkownik będzie rozłączony. Jeżeli
nie podano tego parametru, to opisana funkcja będzie wyłączona.
OBSCURE_CHECKS_ENAB (logiczna)
Jeżeli ma wartość yes, to program passwd przed akceptacją zmiany
hasła będzie wykonywał dodatkowe sprawdzenia. Kontrole te są
dość proste, a ich użycie jest zalecane. Te sprawdzenia
nieoczywistości są pomijane, jeżeli passwd uruchamiane jest
przez użytkownika root. Zobacz także opis PASS_MIN_LEN.
PASS_ALWAYS_WARN (logiczna)
XXX powinno zostać udokumentowane.
PASS_CHANGE_TRIES (liczba)
XXX powinno zostać udokumentowane.
PASS_MIN_DAYS (liczba)
Minimalna liczba dni między dozwolonymi zmianami hasła.
Jakiekolwiek próby zmiany hasła podejmowane wcześniej zostaną
odrzucone. Jeżeli nie podano tego parametru, to przyjęta
zostanie wartość zerowa.
PASS_MIN_LEN (liczba)
Minimalna liczba znaków w akceptowalnym haśle. Próba przypisania
hasła o mniejszej liczbie znaków zostanie odrzucona. Wartość
zero wyłącza tę kontrolę. Jeśli nie podano parametru, to
przyjęta zostanie wartość zerowa.
PASS_MAX_DAYS (liczba)
Maksymalna liczba dni, przez jaką może być używane hasło. Jeśli
hasło jest stanie się starsze, to rachunek zostanie zablokowany.
Jeśli nie podano, to zostanie przyjęta bardzo duża wartość.
PASS_MAX_LEN (liczba)
XXX powinno zostać udokumentowane.
PASS_WARN_AGE (liczba)
Liczba dni ostrzegania przed wygaśnięciem hasła. Wartość zerowa
oznacza, że ostrzeżenie wystąpi wyłącznie w dniu utraty ważności
hasła. Wartość ujemna oznacza brak ostrzeżeń. Brak parametru
oznacza, że ostrzeżenia nie będą wyświetlane.
PORTTIME_CHECKS_ENAB (logiczna)
Jeśli ma wartość yes, zaś plik /etc/porttime istnieje, to będzie
on przeglądany, by upewnić się czy użytkownik może się w danej
chwili zalogować na danej linii. Patrz także podręcznik
porttime(5)
QUOTAS_ENAB (logiczna)
Jeśli ma wartość yes , wówczas dla danego użytkownika "ulimit,"
"umask" i "niceness" będą zainicjowane wartościami podanymi (o
ile są podane) w polu gecos pliku passwd. Patrz także
podręcznik passwd(5).
SU_NAME (napis)
Przypisuje nazwę polecenia do uruchomionego "su -". Na przykład,
jeśli parametr ten jest zdefiniowany jako "su", to polecenie
ps(1) pokaże uruchomione polecenie jako "-su". Jeśli parametr
ten jest niezdefiniowany, to ps(1) pokaże nazwę faktycznie
wykonywanej powłoki, np. coś w rodzaju "-sh".
SULOG_FILE (napis)
Pokazuje pełną nazwę ścieżkową pliku, w którym rejestrowane jest
wykorzystanie su. Jeśli parametr ten nie jest określony, to
rejestrowanie nie jest wykonywane. Ponieważ polecenie su może
być używane podczas prób uwierzytelnienia hasła, do
odnotowywania użycia su powinny być używane albo niniejsza opcja
albo syslog. Zobacz też opis SYSLOG_SU_ENAB.
SU_WHEEL_ONLY (logiczna)
XXX powinno zostać udokumentowane.
SYSLOG_SG_ENAB (logiczna)
XXX powinno zostać udokumentowane.
SYSLOG_SU_ENAB (logiczna)
Jeżeli ma wartość yes, zaś program login został skompilowany z
obsługą syslog, to wszelkie działania su będą rejestrowane za
pomocą syslog. Zobacz też opis SULOG_FILE.
TTYGROUP (napis lub liczba)
Grupa (właścicielska) terminala inicjowana jest na nazwę bądź
numer tej grupy. Jeden z dobrze znanych ataków polega na
wymuszeniu sekwencji kontrolnych terminala na linii terminalowej
innego użytkownika. Problemu tego można uniknąć wyłączając prawa
zezwalające innym użytkownikom na dostęp do linii terminalowej,
ale niestety zapobiega to również działaniu programów takich jak
write. Innym rozwiązaniem jest posłużenie się taką wersją
programu write, która odfiltrowuje potencjalnie niebezpieczne
sekwencje znaków. Następnie programowi należy przyznać
rozszerzone prawa dostępu (SGID) dla specjalnej grupy, ustawić
grupę właścicieli terminala na tę grupę i nadać prawa dostępu
0620 do linii. Definicja TTYGROUP powstała do obsługi tej
właśnie sytuacji. Jeśli pozycja ta nie jest zdefiniowana, to
grupa terminala inicjowana jest na numer grupy użytkownika.
Zobacz także TTYPERM.
TTYPERM (liczba)
Tą wartością inicjowane są prawa terminala logowania. Typowymi
wartościami są 0622 zezwalające innym na pisanie do linii lub
0600 zabezpieczające linię przed innymi użytkownikami. Jeżeli
nie podano tego parametru, to prawa dostępu do terminala zostaną
zainicjowane wartością 0622. Zobacz też TTYGROUP.
TTYTYPE_FILE (napis)
Określa pełną nazwę ścieżkową pliku przypisującego typy
terminali do linii terminalowych. Każdy z wierszy tego pliku
zawiera rozdzielone białym znakiem typ i linię terminala. Na
przykład:
vt100 tty01
wyse60 tty02
. .
. .
. .
Informacja ta służy do inicjowania zmiennej środowiska TERM.
Wiersz rozpoczynający się znakiem # będzie traktowany jak
komentarz. Jeżeli nie podano tego parametru lub plik nie
istnieje albo nie znaleziono w nim linii terminala, to zmienna
TERM nie zostanie ustawiona.
UID_MAX (liczba)
XXX powinno zostać udokumentowane.
UID_MIN (liczba)
XXX powinno zostać udokumentowane.
ULIMIT (długa liczba)
Wartością tą inicjowany jest limit wielkości pliku. Cecha ta
obsługiwana jest wyłącznie w systemach posiadających ulimit, np.
System V. Jeśli nie podano, to limit wielkości pliku zostanie
ustalony na pewną wielką wartość.
UMASK (liczba)
Tą wartością inicjowana jest maska praw dostępu. Nie podana,
ustawia maską praw na 077.
USERDEL_CMD (napis)
XXX powinno zostać udokumentowane.
POWIĄZANIA
Poniższe zestawienie pokazuje, które z programów wchodzących w skład
pakietu shadow wykorzystują jakie parametry.
login CONSOLE DIALUPS_CHECK_ENAB ENV_HZ ENV_SUPATH ENV_TZ
ERASECHAR FAILLOG_ENAB FTMP_FILE HUSHLOGIN_FILE KILLCHAR
LASTLOG_ENAB LOG_UNKFAIL_ENAB MAIL_CHECK_ENAB MAIL_DIR
MOTD_FILE NOLOGINS_FILE PORTTIME_CHECKS_ENAB QUOTAS_ENAB
TTYPERM TTYTYPE_FILE ULIMIT UMASK
newusers PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE UMASK
passwd OBSCURE_CHECKS_ENAB PASS_MIN_LEN
pwconv PASS_MAX_DAYS PASS_MIN_DAYS PASS_WARN_AGE
su ENV_HZ ENV_SUPATH ENV_TZ HUSHLOGIN_FILE MAIL_CHECK_ENAB
MAIL_DIR MOTD_FILE QUOTAS_ENAB SULOG_FILE SYSLOG_SU_ENAB
sulogin ENV_HZ ENV_SUPATH ENV_TZ MAIL_DIR QUOTAS_ENAB TTYPERM
BŁĘDY
Niektóre z obsługiwanych parametrów konfiguracyjnych pozostały
nieopisane w niniejszym podręczniku.
ZOBACZ TAKŻE
login(1), faillog(5), passwd(5), porttime(5), faillog(8)
AUTORZY
Julianne Frances Haugh (jockgrrl@ix.netcom.com)
Chip Rosenthal (chip@unicom.com)
LOGIN(5)