AGETTY(8)

NAZWA
agetty - alternatywne linuksowe getty

SKŁADNIA

agetty [opcje] port [szybkość-w-bodach...] [term]

OPIS

agetty otwiera port tty, prosi o login i wywołuje polecenie /bin/login. Jest zwykle przywoływany przez init(8).

agetty ma wiele niestandardowych funkcji przydatnych przy liniach połączonych bezpośrednio i wdzwanianych:

    • Dostosowuje ustawienia tty do bitów parzystości oraz znaków kasowania, usuwania wiersza, końca wiersza oraz wielkich liter, przy odczytywaniu loginu. Program może obsłużyć znaki 7-bitowe z parzystością ustawioną na parzystość, nieparzystość, brak albo pseudoparzystość z bitem zerowym (ang. space parity) oraz znaki 8-bitowe bez parzystości. Obsługiwane są następujące znaki specjalne: Control-U (usunięcie wiersza); DEL oraz backspace (kasowanie); powrót karetki i wysuw wiersza (koniec wiersza). Zob. też opcje --erase-chars i --kill-chars.

    • Opcjonalnie dedukuje szybkość w bodach na podstawie komunikatów CONNECT wypisywanych przez modemy kompatybilne z Hayes(tm).

    • Opcjonalnie nie rozłącza się gdy linia jest już otwarta (przydatne przy aplikacji oddzwaniania).

    • Opcjonalnie nie wyświetla zawartości pliku /etc/issue.

    • Opcjonalnie wyświetla alternatywne pliki lub katalogi issue, zamiast /etc/issue lub /etc/issue.d.

    • Opcjonalnie nie pyta o login.

    • Opcjonalnie wywołuje niestandardowy program logowania zamiast /bin/login.

    • Opcjonalnie włącza sprzętową kontrolę przepływu.

    • Opcjonalnie wymusza traktowanie linii jako lokalnej, bez konieczności wykrywania nośnej.

Niniejszy program nie korzysta z plików /etc/gettydefs (System V) lub /etc/gettytab (SunOS 4).

ARGUMENTY

port
    Ścieżka względna do katalogu /dev. Jeśli poda się "-", agetty przyjmuje że jego standardowe wejście jest już połączone z portem tty i że połączenie ze zdalnym użytkownikiem zostało już nawiązane.

    W Systemie V, argument port równy "-" trzeba poprzedzić łańcuchem "--".

szybkość-w-bodach,...
    Lista jednej lub więcej szybkości w bodach, rozdzielonych przecinkiem. Za każdym razem, gdy agetty otrzyma znak BREAK, przechodzi do następnej pozycji w liście, traktowanej jako zapętlona.

    Szybkości w bodach powinno się podawać w kolejności malejącej, dzięki czemu do przełączania szybkości można stosować też znak null (Ctrl-@).

    Argument opcjonalny i zbędny w przypadku terminali wirtualnych.

    Domyślnym ustawieniem dla terminali szeregowych jest utrzymanie obecnej szybkości w bodach (zob. --keep-baud), a jeśli to się nie powiedzie, zastosowanie wartości domyślnej "9600".

term
    Wartość jaką przyjmie zmienna środowiskowa TERM. Przesłania wartość, jaką mógł ustawić init(1); jest ona dziedziczona przez login i powłokę.

    Domyślnie jest to "vt100", albo "linux" w przypadku Linuksa na terminalu wirtualnym, albo "hurd" w przypadku GNU Hurd na terminalu wirtualnym.

OPCJE

-8, --8bits
    Przyjmuje, że tty jest 8-bitowy, zatem wyłącza wykrywanie parzystości.

-a, --autologin nazwa-użytkownika
    Automatycznie loguje podanego użytkownika bez pytania o jego nazwę i hasło. Zastosowanie tej opcji powoduje, że do wiersza polecenia /bin/login dodawana jest opcja i argument -f nazwa-użytkownika. Zob. opcję --login-options, którą można zmodyfikować zachowanie tej opcji.

    Proszę zauważyć, że opcja --autologin może wpłynąć na sposób inicjowania przez getty linii szeregowej, ponieważ przy automatycznym logowaniu, agetty nie odczytuje z linii i nie ma okazji do optymalizacji jej ustawień.

-c, --noreset
    Nie resetuje cflag terminala (trybów kontroli). Więcej szczegółów w podręczniku termios(3).

-E, --remote
    Zwykle polecenie login(1) otrzymuje zdalną nazwę stacji (hostname) przy wywoływaniu przez coś takiego jak telnetd(8). Niniejsza opcja pozwala na przekazanie przez agetty tego, co używa on jako nazwę stacji do programu login(1) w celu zastosowania w utmp(5). Zob. --host, login(1) i utmp(5).

    Jeśli poda się opcję --host fałszywa-stacja, to do wiersza polecenia /bin/login dodawana jest opcja i argument -h fałszywa-stacja.

    Jeśli poda się opcję --nohostname, to do wiersza polecenia /bin/login dodawana jest opcja -H.

    Zob. --login-options.

-f, --issue-file ścieżka
    Określa listę plików i katalogów rozdzielonych znakiem ":", które będą wyświetlone zamiast /etc/issue (lub odpowiednika). Wyświetlane są wszystkie podane pliki i katalogi, a brakujące lub puste pliki są po cichu ignorowane. Jeśli podana ścieżka jest katalogiem, to wyświetla wszystkie pliki z rozszerzeniem .issue w tym katalogu, w kolejności numeru wersji. Można w ten sposób wyświetlać dostosowane komunikaty na różnych terminalach. Opcja --noissue przesłoni niniejszą opcję.

--show-issue
    Wyświetla aktualny plik issue (lub odpowiednik) na bieżącym terminalu i wychodzi. Opcja ta służy do sprawdzenia aktualnego ustawienia, nie została zaprojektowana do żadnego innego celu. Proszę zauważyć, że wynik może używać jaki informacji domyślnych lub niepełnych, a prawidłowe wyjście zależy od terminala i wiersza polecenia agetty.

-h, --flow-control
    Włącza sprzętową (RTS/CTS) kontrolę przepływu. Wyłączenie programowej (XON/XOFF) kontroli przepływu, tam gdzie to konieczne, pozostawia się aplikacji.

-H, --host fałszywa-stacja
    Zapisuje podaną fałszywą-stację do pliku utmp. Zwykle nie podaje się stacji logowania, ponieważ agetty jest stosowany do lokalnych, stałych połączeń i konsol. Jednak opcja może być przydatna do identyfikacji koncentratorów terminali i tym podobnych.

-i, --noissue
    Nie wyświetla zawartości /etc/issue (lub odpowiednika) przed wypisaniem zachęty logowania. Sprzętowe terminale lub urządzenia do komunikacji mogą być zmylone dużą ilością tekstu otrzymaną z nieprawidłową szybkością w bodach; skrypty wdzwaniania mogą zawieść, gdy zachęta logowania jest poprzedzona przez zbyt wiele tekstu.

-I, --init-string łańcuch-inicjowania
    Ustawia początkowy łańcuch wysyłany do tty lub modemu przed wysłaniem czegokolwiek innego. Można w ten sposób zainicjować modem. Wysłanie znaków niedrukowalnych jest możliwe poprzez zapisanie ich ósemkowego kodu poprzedzonego odwrotnym ukośnikiem (\). Na przykład aby wysłać znak wysuwu strony (kod 10 w ASCII, ósemkowe 012), należy zapisać \12.

-J, --noclear
    Nie czyści ekranu przed zapytaniem o login. Domyślnie ekran jest czyszczony.

-l, --login-program program-logowania
    Wywołuje podany program-logowania zamiast /bin/login. Można w ten sposób zastosować niestandardowy program logowania. Taki program może np. pytać o hasło wdzwaniania lub stosować inny plik z hasłami. Zob. --login-options.

-L, --local-line[=tryb]
    Kontroluje flagę linii CLOCAL. Opcjonalnym argumentem tryb może być auto, always lub never. Jeśli pominie się argument tryb, domyślnie przyjmowany jest always. Jeśli natomiast w ogóle nie poda się opcji --local-line, domyślnym ustawieniem jest auto.

    always
        Wymusza ustawienie linii jako linii lokalnej, bez konieczności wykrywania nośnej. Może być przydatne, gdy posiada się terminal podłączony lokalnie, gdzie linia szeregowa nie ustawia sygnału wykrywania nośnej.

    never
        Jawnie czyści flagę CLOCAL z ustawienia linii; na linii oczekuje się występowania sygnału wykrywania nośnej.

    auto
        Domyślne ustawienie agetty. Nie modyfikuje ustawienia CLOCAL i stosuje ustawienie wybrane przez jądro.

-m, --extract-baud
    Próbuje wyodrębnić szybkość w bodach z komunikatu stanu CONNECT tworzonego przez modemy kompatybilne z Hayes(tm). Omawiane komunikaty stanu mają postać: "<śmieci><szybkość><śmieci>". agetty przyjmuje, że modem emituje swój komunikat stanu z taką samą prędkością, jako podano w (pierwszej) wartości szybkość-w-bodach w wierszu polecenia.

    Jako że funkcja --extract-baud może zawieść na mocno obciążonych systemach, powinno się wciąż włączyć przetwarzanie BREAK poprzez wypisanie wszystkich oczekiwanych szybkości w bodach w wierszu polecenia.

--list-speeds
    Wyświetla obsługiwane szybkości w bodach. Określa się je w trakcie kompilacji.

-n, --skip-login
    Nie pyta użytkownika o login. Można stosować łącznie z opcją --login-program do wywoływania niestandardowego procesu logowania, takiego jak systemu BBS. Proszę zauważyć, że przy opcji --skip-login, agetty nie otrzymuje wejścia od logującego się użytkownika, zatem nie będzie w stanie wykryć parzystości, rozmiaru znaku ani sposobu przetwarzania nowego wiersza w połączeniu. Domyślnie stosowana jest pseudoparzystość z bitem zerowym (ang. space parity), znaki 7-bitowe oraz znak CR ASCII (13) jako znak końca wiersza. Proszę być świadomym, że program uruchamiany przez agetty (zwykle /bin/login) działa jako root.

-N, --nonewline
    Nie wypisuje nowego wiersza przed zawartością /etc/issue.

-o, --login-options opcje-logowania
    Opcje i argumenty przekazywane do login(1), gdzie \u jest zastępowane loginem. Przykład:

    --login-options '-h darkstar -- \u'

    Zob. --autologin, --login-program i --remote.

    Przed zastosowaniem tej opcji proszę zapoznać się z rozdziałem ZASTRZEŻENIE ZWIĄZANE Z BEZPIECZEŃSTWEM

-p, --login-pause
    Czeka na dowolny klawisz przed przejściem do zachęty logowania. Można łączyć z --autologin aby zaoszczędzić pamięć przez leniwe tworzenie powłok.

-r, --chroot katalog
    Zmienia katalog główny na podany.

-R, --hangup
    Wywołuje vhangup(2) w celu wykonania wirtualnego rozłączenia się na podanym terminalu.

-s, --keep-baud
    Stara się utrzymać istniejącą szybkość w bodach. Szybkości w bodach z wiersza polecenia są stosowane, gdy agetty otrzyma znak BREAK. Jeśli podano inne szybkości w bodach, pierwotna jest zachowywana i trafia na koniec listy pożądanych szybkości. W ten sposób można powrócić do pierwotnej szybkości w bodach, po otrzymaniu nieoczekiwanych znaków BREAK.

-t, --timeout czas-przeterminowania
    Przerywa, gdy nie można odczytać nazwy użytkownika przez czas-przeterminowania sekund. Nie zaleca się stosowania tej opcji na stałych liniach terminalowych.

-U, --detect-case
    Włącza obsługę wykrywania terminala z wyłącznie znakami drukowanymi. To ustawienie wykryje nazwę loginu zawierającą wyłącznie wielkie litery jako wskazówkę terminala stosującego wyłącznie znaki drukowane, włączając pewne konwersje z wielkich na małe litery. Proszę zauważyć, że brak tu obsługi jakichkolwiek znaków Unikodu.

-w, --wait-cr
    Czeka na wysłanie przez użytkownika lub modem znaku powrotu karetki lub wysuwu strony przed wysłaniem pliku /etc/issue (lub innych) oraz zachęty logowania. Przydatne z opcją --init-string.

--nohints
    Nie wypisuje podpowiedzi dotyczących klawiszy Num Lock, Caps Lock i Scroll Lock.

--nohostname
    Domyślnie wypisywana jest nazwa stacji (hostname). Po włączeniu tej opcji, nazwa stacji nie jest pokazywana. Takie ustawienie można też uzyskać opcją LOGIN_PLAIN_PROMPT w pliku konfiguracyjnym /etc/login.defs (więcej szczegółów poniżej).

--long-hostname
    Domyślnie nazwa stacji jest wypisywana jedynie do pierwszej kropki. Po włączeniu tej opcji wypisywane jest w pełni kwalifikowalna nazwa stacji z gethostname(3P) lub (jeśli nie znaleziono) z getaddrinfo(3).

--erase-chars łańcuch
    Opcja określa dodatkowe znaki interpretowane jako backspace ("zignoruj poprzedni znak") gdy użytkownik wpisuje swój login. Domyślnym dodatkowym znakiem "usuwania" był niegdyś "#", jednak od util-linux 2.23 domyślnie nie są włączane żadne dodatkowe znaki usuwania.

--kill-chars łańcuch
    Opcja określa dodatkowe znaki interpretowane jako usuwanie wiersza - kill ("ignoruj wszystkie poprzednie znaki") gdy użytkownik wpisuje swój login. Domyślnym dodatkowym znakiem "kill" był niegdyś '@', jednak od util-linux 2.23 domyślnie nie są włączane żadne dodatkowe znaki usuwania wiersza.

--chdir katalog
    Zmienia katalog przed logowaniem.

--delay liczba
    Przerwa w sekundach przez otwarciem tty.

--nice liczba
    Uruchamia login ze wskazanym priorytetem.

--reload
    Prosi wszystkie działające instancje agetty o przeładowanie i zaktualizowanie swoich wyświetlanych zachęt, jeśli użytkownik jeszcze nie rozpoczął logowania się. Następnie polecenie zakończy się. Funkcja może być nieobsługiwana w systemach bez linuksowego inotify(7).

--help
    Wyświetla ten tekst i wychodzi.

--version
    Wyświetla wersję i wychodzi.

ELEMENTY PLIKU KONFIGURACYJNEGO

agetty odczytuje plik konfiguracyjny /etc/login.defs (zob. login.defs(5)). Proszę zauważyć, że plik konfiguracyjny może być dostarczany przez inny pakiet (zwykle shadow-utils). Następujące pozycje konfiguracyjne są istotne dla agetty:

LOGIN_PLAIN_PROMPT (wartość logiczna)
    Nakazuje agetty, aby nie wypisywało nazwy stacji w zachęcie login:. Alternatywa dla opcji wiersza poleceń --nohostname. Domyślna wartość to no (nie).

PRZYKŁAD

Rozdział zawiera przykładowe pola procesu dla wpisu w pliku /etc/inittab. Trzeba je poprzedzić prawidłowymi wartościami innych pól. Więcej szczegółów w podręczniku inittab(5).

W przypadku linii połączonej bezpośrednio lub konsoli tty:

    /sbin/agetty 9600 ttyS1

W przypadku bezpośrednio połączonego terminala bez prawidłowego okablowania pozwalającego na wykrycie nośnej (do wypróbowania, gdy terminal zatrzymuje się, zamiast wyświetlać zachętę hasło:):

    /sbin/agetty --local-line 9600 ttyS1 vt100

W przypadku tradycyjnej linii wdzwanianej z modemem o 9600/2400/1200 bodach:

    /sbin/agetty --extract-baud --timeout 60 ttyS1 9600,2400,1200

W przypadku modemu Hayesa o stałym interfejsie 115200 bps z komputerem (przykładowy łańcuch inicjujący wyłącza odbijanie modemu /echo/ i kodów wynikowych, ustawia śledzenie DCD modem/modem przez DCD modem/komputer, wykonuje DTR drop powodujące rozłączenie i włącza automatyczną odpowiedź po jednym sygnale):

    /sbin/agetty --wait-cr --init-string 'ATE0Q1&D2&C1S0=1\015' 115200 ttyS1

ZASTRZEŻENIE ZWIĄZANE Z BEZPIECZEŃSTWEM

Jeśli korzysta się z opcji --login-program i --login-options należy być świadomym, że złośliwy użytkownik może zechcieć wprowadzać loginy z osadzonymi opcjami, które są następnie przekazywane do stosowanego programu logowania. agetty sprawdza pod kątem początkowego "-" i upewnia się, że login jest przekazywany jako pojedynczy parametr (a więc osadzone spacje nie utworzą kolejnego parametru), lecz w zależności od sposobu przetwarzania wiersza polecenia przez plik wykonywalny login może być to niewystarczające. Proszę sprawdzić, czy używany program login nie może być w ten sposób nadużywany.

Niektóre programy używają "--" do wskazania, że reszty wiersza polecenia nie należy interpretować jako opcji. Proszę korzystać z tej funkcji, jeśli jest dostępna, przekazując "--" przed przekazywaną za pomocą \u nazwą użytkownika.

PLIKI ISSUE

Domyślnym plikiem issue jest /etc/issue. Jeśli plik istnieje, agetty sprawdzi także katalog /etc/issue.d. Katalog jest opcjonalnym rozszerzeniem domyślnego pliku issue, a jego zawartość jest wypisywana po zawartości pliku /etc/issue. Jeśli plik /etc/issue nie istnieje, to katalog jest ignorowany. Wszystkie pliki z rozszerzeniem .issue są wypisywane w kolejności sortowania wersji. Katalog można stosować do zarządzania komunikatami zewnętrznymi, niezależnie od podstawowego, systemowego pliku /etc/issue.

Od wersji 2.35, obsługiwane są dodatkowe położenia pliku i katalogu issue. agetty szuka pliku /run/issue i katalogu /run/issue.d, a następnie pliku /usr/lib/issue i katalogu /usr/lib/issue.d. Oczekuje się, że w katalogu /etc występuje konfiguracja typowa dla danego komputera, w /run treść generowana, a /usr/lib jest stosowane dla statycznej konfiguracji utrzymywanej przez dystrybucję.

Proszę zauważyć, że od wersji 2.35 do 2.40, dodatkowe położenia były odczytywane jedynie, gdy domyślny plik /etc/issue nie istniał. Od wersji 2.41 dodatkowe położenia są odczytywane zawsze, niezależnie od występowania pliku /etc/issue. Zmiana pozwala na domyślne generowanie plików issue.

Domyślne ścieżki można całkowicie przesłonić opcją --issue-file. W takim przypadku podana ścieżka musi być plikiem lub katalogiem, a wszystkie domyślne położenia pliku i katalogu issue są ignorowane.

Funkcję pliku issue można całkowicie wyłączyć opcją --noissue.

Można przejrzeć aktualny plik issue, wykonując polecenie agetty --show-issue na bieżącym terminalu.

Pliki issue mogą zawierać określone sekwencje specjalne, wyświetlające nazwę systemu, datę, czas itd. Wszystkie sekwencje specjalne składają się z odwrotnego ukośnika (\), bezpośrednio po którym występuje jeden ze znaków podanych poniżej.

4 lub 4{interfejs}
    Umieszcza adres IPv4 podanego interfejsu sieciowego (np. \4{eth0}). Jeśli nie poda się argumentu interfejs, wybiera pierwszy całkowicie skonfigurowany interfejs (UP, niebędący LOCALBACK, RUNNING). Jeśli nie uda się odnaleźć skonfigurowanego interfejsu, wyświetla adres IP nazwy stacji.

6 lub 6{interfejs}
    Jak \4 lecz dotyczy adresu IPv6.

a
    Wstawia listę "dobrych" adresów IP dla wszystkich interfejsów. Wyświetla adresy IP będące najlepszymi kandydatami do zdalnego logowania: adresy globalne i stron; jeśli nie są dostępne, tymczasowe adresy o najdłuższym czasie istnienia, jeśli nie są dostępne, adresy łączenia. Proszę zauważyć, że adresy łączenia są wypisywane z nazwą interfejsu lokalnego, jednak przy ich zastosowaniu konieczne będzie użycie nazwy interfejsu na komputerze, na którym będą używane.

A
    Wstawia listę wszystkich adresów IP dla wszystkich interfejsów.

b
    Wstawia szybkość w bodach bieżącej linii.

d
    Wstawia aktualną datę.

e lub e{nazwa}
    Tłumaczy nazwę czytelną dla człowieka na sekwencję specjalną i wstawia ją (np. \e{red}Tekst alertu.\e{reset}). Jeśli nie poda się argumentu nazwa, wstawia \033. Obecnie obsługiwane są następujące nazwy: black, blink, blue, bold, brown, cyan, darkgray, gray, green, halfbright, lightblue, lightcyan, lightgray, lightgreen, lightmagenta, lightred, magenta, red, reset, reverse, yellow oraz white. Wszystkie nieznane nazwy są po cichu ignorowane.

s
    Wstawia nazwę systemu (nazwę systemu operacyjnego). Odpowiada poleceniu "uname -s". Zob. też sekwencję specjalną \S.

S or S{ZMIENNA}
    Wstawia dane ZMIENNEJ z /etc/os-release. Jeśli plik ten nie istnieje, korzysta z /usr/lib/os-release. Jeśli nie poda się argumentu ZMIENNA, stosuje PRETTY_NAME z pliku albo nazwę systemu (zob. \s). Ta sekwencja specjalna może posłużyć do utrzymywania wydania i dystrybucji /etc/issue jako niezależnych. Proszę zauważyć, że \S{ANSI_COLOR} jest konwertowane na faktyczną sekwencję specjalną terminala.

l
    Wstawia nazwę bieżącej linii tty.

m
    Wstawia identyfikator architektury komputera. Równoważny uname -m.

n
    Wstawia nazwę węzła komputera, inaczej nazwę stacji (hostname). Równoważna uname -n.

o
    Wstawia nazwę domeny NIS komputera. Równoważna hostname -d.

O
    Wstawia nazwę domeny DNS komputera.

r
    Wstawia numer wydania systemu operacyjnego. Równoważny uname -r.

t
    Wstawia aktualny czas.

u
    Wstawia liczbę aktualnie zalogowanych użytkowników.

U
    Wstawia łańcuch "1 użytkownik" lub "<n> użytkownicy"/"<n> użytkowników" gdzie <n> jest liczbą aktualnie zalogowanych użytkowników.

v
    Wstawia wersję systemu operacyjnego tj. datę zbudowania itp.

Przykład. Na systemie autora podręcznika następujący plik /etc/issue:

    Tu \n.\o (\s \m \r) \t

wyświetlał się jako:

    Tu thingol.orcan.dk (Linux i386 1.1.9) 18:29:30

PLIKI

/var/run/utmp
    systemowy plik stanu.

/etc/issue
    wypisywane przed zachętą logowania.

/etc/os-release /usr/lib/os-release
    dane identyfikujące system operacyjny.

/dev/console
    dzienniki błędów (jeśli nie jest stosowany syslog(3)).

/etc/inittab
    plik konfiguracyjny init(8) demona init w stylu SysV.

DANE UWIERZYTELNIAJĄCE

agetty obsługuje konfigurację za pomocą poświadczeń systemd (zob. agetty odczytuje następujące poświadczenia systemd:

agetty.autologin (łańcuch)
    Jeśli ustawione, konfiguruje agetty w celu automatycznego logowania się jako podany użytkownik, bez pytania o login i hasło, podobnie do opcji --autologin.

USTERKI

Funkcja wykrywania szybkości w bodach (opcja --extract-baud) wymaga, aby agetty otrzymał czas procesora wystarczająco szybko po ukończeniu połączenia wdzwaniania (do 30 ms w przypadku modemów komunikujących się z szybkością 2400 bodów). Dla pewności działania, należy zawsze stosować opcję wiersza polecenia --extract-baud wraz z kilkoma szybkościami w bodach, dzięki czemu włączone jest przetwarzanie BREAK.

Tekst z pliku /etc/issue (lub innego) i zachęta logowania są zawsze wypisywane jako znaki 7-bitowe z pseudoparzystością z bitem zerowym (ang. space parity).

Funkcja wykrywania szybkości w bodach (opcja --extract-baud) wymaga, aby modem wyemitował swój komunikat stanu po podniesieniu linii DCD.

DIAGNOSTYKA

W zależności od sposobu konfiguracji programu, wszelka diagnostyka jest wypisywana na urządzenie konsoli albo zgłaszana poprzez syslog(3). Błędy są tworzone, gdy argument port nie określa urządzenia terminala; gdy brak wpisu utmp dla bieżącego procesu (tylko System V) itd.

AUTORZY

Autorem pierwotnego agetty do terminali szeregowych był a port na Linuksa napisał

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w

DOSTĘPNOŚĆ

Polecenie agetty jest częścią pakietu util-linux, który można pobrać ze strony