AGETTY(8)

NUME
agetty - alternativă la getty pentru Linux

REZUMAT

agetty [opțiuni] port [rata_baud...] [term]

DESCRIERE

agetty deschide un port tty, solicită un nume de autentificare și invocă comanda /bin/login. În mod normal, este invocată de init(8).

agetty are mai multe caracteristici non-standard care sunt utile pentru liniile cablate și pentru liniile dial-in:

    • Adaptează configurările tty la biții de paritate și la caracterele de ștergere, omorâre (kill), sfârșit de linie și majuscule atunci când citește un nume de autentificare. Programul poate gestiona caractere pe 7 biți cu paritate pară, impară, fără paritate sau spațiu și caractere pe 8 biți fără paritate. Sunt recunoscute următoarele caractere speciale: Control-U (kill); DEL și backspace (ștergere); retur de cărucior și salt de linie (sfârșit de linie). A se vedea, de asemenea, opțiunile --erase-chars și --kill-chars.

    • În mod opțional, deduce viteza de transmisie din mesajele CONNECT produse de modemurile compatibile de Hayes(tm).

    • Opțional, nu închide atunci când i se oferă o linie deja deschisă (util pentru aplicațiile de reapelare).

    • Opțional, nu afișează conținutul fișierului /etc/issue.

    • Opțional, afișează o alternativă de fișiere sau directoare I<issue> în loc de /etc/issue sau /etc/issue.d.

    • Opțional, nu solicită un nume de autentificare.

    • Opțional, invocă un program de autentificare non-standard în loc de /bin/login.

    • Opțional, activează controlul fluxului prin hardware.

    • În mod opțional, forțează linia să fie locală, fără a fi necesară detectarea purtătorului.

Acest program nu utilizează fișierele /etc/gettydefs (System V) sau /etc/gettytab (SunOS 4).

ARGUMENTE

port
    Un nume de rută în raport cu directorul /dev. Dacă se specifică „-”, agetty presupune că intrarea sa standard este deja conectată la un port tty și că a fost deja stabilită o conexiune cu un utilizator la distanță.

    În cadrul System V, un argument port „-” trebuie să fie precedat de un „--”.

rata_baud,...
    O listă de una sau mai multe rate de transmisie, separate prin virgule. De fiecare dată când agetty primește un caracter BREAK, avansează prin listă, care este tratată ca și cum ar fi circulară.

    Ratele de transmisie trebuie să fie specificate în ordine descrescătoare, astfel încât caracterul nul (Ctrl-@) să poată fi utilizat și pentru comutarea ratei de transmisie.

    Acest argument este opțional și nu este necesar pentru terminalele virtuale.

    Valoarea implicită pentru terminalele seriale este păstrarea ratei baud curente (a se vedea --keep-baud) și, dacă nu se reușește, valoarea implicită este „9600”.

term
    Valoarea care urmează să fie utilizată pentru variabila de mediu TERM. Aceasta înlocuiește orice valoare stabilită de init(1) și este moștenită de «login» și de «shell».

    Valoarea implicită este „vt100”, sau „linux” pentru Linux pe un terminal virtual, sau „hurd” pentru GNU Hurd pe un terminal virtual.

OPȚIUNI

-8, --8bits
    Preupune că tty este curat pe 8 biți, deci dezactivează detectarea parității.

-a, --autologin nume-utilizator
    Autentifică automat utilizatorul specificat, fără a cere un nume de utilizator sau o parolă. Utilizarea acestei opțiuni determină adăugarea unei opțiuni și a unui argument -f nume-utilizator la linia de comandă /bin/login. Consultați opțiunea --login-options, care poate fi utilizată pentru a modifica comportamentul acestei opțiuni.

    Rețineți că --autologin poate afecta modul în care getty inițializează linia serială, deoarece la autentificarea automată agetty nu citește de pe linie și nu are posibilitatea de a optimiza configurația liniei.

-c, --noreset
    Nu se reinițiază „cflags” (moduri de control) ale terminalului. Pentru mai multe detalii, consultați termios(3).

-E, --remote
    De obicei, comanda login(1) primește un nume de gazdă la distanță atunci când este apelată de ceva precum telnetd(8). Această opțiune permite lui agetty să transmită ceea ce folosește ca nume de gazdă la login(1) pentru a fi utilizat în utmp(5). A se vedea --host, login(1) și utmp(5).

    Dacă se dă opțiunea --host gazdă-fictivă, atunci o opțiune și un argument -h gazdă-fictivă sunt adăugate la linia de comandă /bin/login.

    Dacă se dă opțiunea --nohostname, atunci se adaugă o opțiune -H la linia de comandă /bin/login.

    A se vedea --login-options.

-f, --issue-file ruta
    Specifică o listă de fișiere și directoare delimitată de caracterul „:”, care trebuie să fie afișate în loc de /etc/issue (sau altele). Toate fișierele și directoarele specificate sunt afișate, fișierele lipsă sau goale sunt ignorate în mod silențios. În cazul în care ruta specificată este un director, se afișează toate fișierele cu extensia .issue în ordinea de sortare a versiunilor din director. Acest lucru permite afișarea de mesaje personalizate pe terminale diferite. Opțiunea --noissue va anula această opțiune.

--show-issue
    Afișează fișierul cu numărul curent (sau altul) pe terminalul curent și iese. Folosiți această opțiune pentru a revizui configurația curentă, nu este concepută în niciun alt scop. Rețineți că ieșirea poate utiliza unele informații implicite sau incomplete, deoarece ieșirea corectă depinde de terminal și de linia de comandă agetty.

-h, --flow-control
    Activează controlul hardware al fluxului (RTS/CTS). Se lasă la latitudinea aplicației să dezactiveze protocolul de flux software (XON/XOFF), dacă este cazul.

-H, --host gazdă-fictivă
    Scrie gazda-fictivă specificată în fișierul utmp. În mod normal, nu se indică nicio gazdă de conectare, deoarece agetty este utilizat pentru conexiunile locale prin cablu și console. Cu toate acestea, această opțiune poate fi utilă pentru identificarea concentratoarelor de terminale și altele asemenea.

-i, --noissue
    Nu afișează conținutul fișierului /etc/issue (sau altul) înainte de a scrie promptul de conectare. Terminalele sau echipamentul de comunicații pot deveni confuze atunci când primesc mult text la o viteză de transmisie greșită; scripturile dial-up pot eșua dacă promptul de conectare este precedat de prea mult text.

-I, --init-string șir-inițial
    Stabilește un șir inițial care să fie trimis la tty sau modem înainte de a trimite orice altceva. Acesta poate fi utilizat pentru a inițializa un modem. Caracterele neimprimabile pot fi trimise prin scrierea codului octal al acestora precedat de o bară oblică inversă (\). De exemplu, pentru a trimite un caracter de salt de linie (ASCII 10, octal 012), scrieți \12.

-J, --noclear
    Nu șterge ecranul înainte de a solicita numele de utilizator. În mod implicit, ecranul este șters.

-l, --login-program program-autentificare
    Invocă programul program-autentificare specificat în loc de /bin/login. Acest lucru permite utilizarea unui program de conectare non-standard. Un astfel de program ar putea, de exemplu, să ceară o parolă de apelare sau să utilizeze un fișier de parole diferit. A se vedea --login-options.

-L, --local-line[=mod]
    Controlează indicatorul de linie CLOCAL. Argumentul opțional mod este auto, always (întotdeauna) sau never (niciodată). Dacă argumentul mod este omis, atunci valoarea implicită este always. Dacă opțiunea --local-line nu este dată deloc, atunci valoarea implicită este auto.

    always
        Forțează linia să fie o linie locală, fără a fi necesară detectarea purtătoarei. Acest lucru poate fi util atunci când aveți un terminal atașat local unde linia serială nu stabilește semnalul de detectare a purtătoarei.

    never
        Șterge în mod explicit indicatorul CLOCAL din configurația liniei și semnalul de detectare a purtătoarei este așteptat pe linie.

    auto
        Valoarea implicită agetty. Nu modifică valoarea CLOCAL și urmează valoarea stabilită de kernel.

-m, --extract-baud
    Încearcă să extragă viteza de transmisie (rata de baud) din mesajul de stare CONNECT produs de modemurile compatibile Hayes(tm). Aceste mesaje de stare sunt de forma: "<deșeu-nedorit><viteza><deșeu-nedorit>". agetty presupune că modemul emite mesajul său de stare la aceeași viteză ca cea specificată cu (prima) valoare rata_baud din linia de comandă.

    Deoarece caracteristica --extract-baud poate eșua pe sistemele foarte încărcate, ar trebui totuși să activați procesarea BREAK prin enumerarea tuturor vitezelor de transmisie așteptate în linia de comandă.

--list-speeds
    Afișează ratele de baud suportate. Acestea sunt determinate în momentul compilării.

-n, --skip-login
    Nu solicită utilizatorului un nume de autentificare. Această opțiune poate fi utilizată împreună cu opțiunea --login-program pentru a invoca un proces de conectare non-standard, cum ar fi un sistem BBS. Rețineți că, în cazul opțiunii --skip-login, agetty nu primește nici o informație de la utilizatorul care se conectează și, prin urmare, nu va fi capabil să calculeze paritatea, dimensiunea caracterelor și procesarea noilor linii ale conexiunii. Se utilizează în mod implicit paritatea spațială, caractere de 7 biți și caracterul ASCII CR (13) de sfârșit de linie (retur de cărucior). Atenție la faptul că programul pe care îl pornește agetty (de obicei /bin/login) este rulat ca root.

-N, --nonewline
    Nu se imprimă o linie nouă înainte de a scrie /etc/issue.

-o, --login-options opțiuni-autentificare
    Opțiunile și argumentele care sunt transmise la login(1). În cazul în care \u este înlocuit cu numele de utilizator. De exemplu:

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

    A se vedea --autologin, --login-program și --remote.

    Vă rugăm să citiți informațiile din secțiunea AVIZ DE SECURITATE de mai jos înainte de a utiliza această opțiune.

-p, --login-pause
    Așteaptă apăsarea oricărei taste înainte de a trece la solicitarea de conectare. Poate fi combinată cu --autologin pentru a economisi memorie prin generarea leneșă de shell-uri.

-r, --chroot director
    Schimbă rădăcina în directorul specificat.

-R, --hangup
    Apelează vhangup(2) pentru a efectua o suspendare virtuală a terminalului specificat.

-s, --keep-baud
    Încearcă să păstreze rata de baud existentă. Ratele baud din linia de comandă sunt utilizate atunci când agetty primește un caracter BREAK. Dacă este specificată o altă rată de baud, atunci rata de baud originală este, de asemenea, salvată la sfârșitul listei de rate de baud dorite. Acest lucru poate fi utilizat pentru a reveni la rata de baud inițială după BREAK-uri (întreruperi) neașteptate.

-t, --timeout așteptare
    Termină dacă nu a putut fi citit niciun nume de utilizator în decurs de așteptare secunde. Nu se recomandă utilizarea acestei opțiuni în cazul liniilor de terminal cablate.

-U, --detect-case
    Activează suportul pentru detectarea unui terminal care utilizează doar majuscule. Această opțiune va detecta un nume de autentificare care conține doar majuscule ca fiind un terminal care utilizează doar majuscule și va activa unele conversii de la majuscule la minuscule. Rețineți că această opțiune nu oferă suport pentru niciun caracter Unicode.

-w, --wait-cr
    Așteaptă ca utilizatorul sau modemul să trimită un caracter de retur de cărucior sau un caracter de salt de linie înainte de a trimite fișierul /etc/issue (sau altele) și solicitarea de autentificare. Această opțiune este utilă cu opțiunea --init-string.

--nohints
    Nu afișează indicii despre Blocările Num, Caps și Scroll.

--nohostname
    În mod implicit, se va imprima numele de gazdă. Dacă această opțiune este activată, nu se va afișa niciun nume de gazdă. Această configurație este, de asemenea, posibilă prin opțiunea LOGIN_PLAIN_PROMPT din fișierul de configurare /etc/login.defs ( a se vedea mai jos pentru mai multe detalii).

--long-hostname
    În mod implicit, numele de gazdă este afișat doar până la primul punct. Dacă această opțiune este activată, se afișează numele de gazdă complet calificat prin gethostname(3P) sau (dacă nu este găsit) prin getaddrinfo(3).

--erase-chars șir
    Această opțiune specifică caracterele suplimentare care ar trebui interpretate ca o retrocedare ((backspace) „ignoră caracterul anterior”) atunci când utilizatorul tastează numele de utilizator pentru autentificare. Opțiunea de ștergere suplimentară implicită a fost „#”, dar de la util-linux 2.23 nu mai sunt activate în mod implicit caracterele suplimentare de ștergere.

--kill-chars șir
    Această opțiune specifică caracterele suplimentare care ar trebui interpretate ca un kill („ignoră toate caracterele anterioare”) atunci când utilizatorul își tastează numele pentru autentificare. Caracterul „kill” suplimentar implicit a fost „@”, dar începând cu util-linux 2.23 nu mai sunt activate în mod implicit caracterele suplimentare de tip kill.

--chdir director
    Schimbă directorul înainte de autentificare.

--delay număr
    Doarme număr secunde înainte de a deschide tty.

--nice număr
    Rulează «login» cu această prioritate.

--reload
    Solicită tuturor instanțelor agetty în curs de execuție să reîncarce și să își actualizeze mesajele afișate, dacă utilizatorul nu a început încă să se conecteze. După ce a făcut acest lucru, comanda va ieși. Este posibil ca această caracteristică să nu fie suportată pe sistemele fără Linux inotify(7).

-h, --help
    Afișează acest mesaj de ajutor și iese.

-V, --version
    Afișează versiunea și iese.

ELEMENTE ALE FIȘIERULUI DE CONFIGURARE

agetty citește fișierul de configurare /etc/login.defs (a se vedea login.defs(5)). Rețineți că fișierul de configurare ar putea fi distribuit împreună cu un alt pachet (de obicei shadow-utils). Următoarele elemente de configurare sunt relevante pentru agetty:

LOGIN_PLAIN_PROMPT (boolean)
    Îi indică lui agetty că imprimarea numelui de gazdă ar trebui să fie suprimată în promptul login:. Aceasta este o alternativă la opțiunea de linie de comandă --nohostname. Valoarea implicită este no.

EXEMPLU

Această secțiune prezintă exemple pentru câmpul process al unei intrări din fișierul /etc/inittab. Va trebui să adăugați valorile corespunzătoare pentru celelalte câmpuri. Pentru mai multe detalii, consultați inittab(5).

Pentru o linie cablată sau o consolă tty:

    /sbin/agetty 9600 ttyS1

Pentru un terminal conectat direct fără o cablare corespunzătoare de detectare a purtătoarei (încercați acest lucru dacă terminalul dvs. doarme în loc să vă dea o parolă: prompt):

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

Pentru o linie dial-in de tip vechi cu un modem de 9600/2400/1200 baud:

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

Pentru un modem Hayes cu o interfață fixă de 115200 bps la mașină (șirul init de exemplu dezactivează codurile de echo și de rezultat ale modemului, face ca DCD modem/calculator să urmărească DCD modem/modem, face ca o cădere DTR să provoace o deconectare și activează răspunsul automat după 1 apel):

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

AVIZ DE SECURITATE

Dacă utilizați opțiunile --login-program și --login-options, trebuie să știți că un utilizator rău intenționat poate încerca să introducă nume de autentificare cu opțiuni încorporate, care apoi sunt transmise programului de autentificare utilizat. agetty verifică dacă există un „-” de început și se asigură că numele de autentificare este transmis ca un singur parametru (astfel încât spațiile încorporate nu vor crea încă un parametru), dar, în funcție de modul în care binarul de autentificare analizează linia de comandă, acest lucru ar putea să nu fie suficient. Verificați dacă programul de autentificare utilizat nu poate fi abuzat în acest mod.

Unele programe folosesc „--” pentru a indica faptul că restul liniei de comandă nu trebuie interpretat ca opțiuni. Folosiți această caracteristică, dacă este disponibilă, trecând „--” înainte ca numele de utilizator să fie pasat de \u.

FIȘIERE ISSUE

Fișierul implicit „issue” (fișierul ce conține informații utile și mesajul de întâmpinare) este /etc/issue. Dacă fișierul există, atunci agetty verifică și directorul /etc/issue.d. Directorul este o extensie opțională a fișierului implicit „issue”, iar conținutul directorului este afișat după conținutul /etc/issue. În cazul în care /etc/issue nu există, atunci directorul este ignorat. Toate fișierele cu extensia .issue din director sunt afișate în ordinea de sortare a versiunilor. Directorul poate fi utilizat pentru a menține mesajele terților independent de fișierul /etc/issue al sistemului primar.

Începând cu versiunea 2.35, sunt acceptate locații suplimentare pentru fișierul și directorul „issue” (de publicare a informațiilor și mesajelor de întâmpinare ale sistemului și/sau a le terților). agetty verifică fișierele /run/issue și /run/issue.d, apoi /usr/lib/issue și /usr/lib/issue.d. Directorul /etc este așteptat pentru configurația specifică a gazdei, /run este așteptat pentru lucrurile generate și /usr/lib pentru configurația statică menținută de distribuție.

Rețineți că în versiunile 2.35 - 2.40, locațiile suplimentare erau citite numai dacă fișierul /etc/issue implicit nu exista. Cu toate acestea, de la versiunea 2.41, locațiile suplimentare sunt citite întotdeauna, indiferent de existența fișierului /etc/issue. Această modificare permite generarea de fișiere issue în mod implicit.

Rutele implicite pot fi complet înlocuite prin opțiunea --issue-file. În acest caz, ruta specificată trebuie să fie un fișier sau un director, iar toate locațiile implicite ale fișierelor și directoarelor „issue” sunt ignorate.

Caracteristica fișierului „issue” poate fi complet dezactivată prin opțiunea --noissue.

Este posibil să se revizuiască fișierul „issue” curent prin agetty --show-issue pe terminalul curent.

Fișierele „issue” pot conține anumite coduri de eludare pentru a afișa numele sistemului, data, ora etc. Toate codurile de eludare constau dintr-o bară oblică inversă (\) urmată imediat de unul dintre caracterele enumerate mai jos.

4 sau 4{interfața}
    Introduce adresa IPv4 a interfeței de rețea specificate (de exemplu: \4{eth0}). Dacă argumentul interfața nu este specificat, atunci se selectează prima interfață complet configurată (UP, non-LOCALBACK, RUNNING). Dacă nu se găsește nicio interfață configurată, se revine la adresa IP a numelui de gazdă al mașinii.

6 sau 6{interfața}
    La fel ca \4, dar pentru IPv6.

b
    Inserează rata de baud a liniei curente.

d
    Inserează data curentă.

e sau e{nume}
    Transformă numele, care poate fi interpretat de către om, într-o secvență de eludare și-o inserează (de exemplu: \e{red}Text alertă.\e{reset}). Dacă argumentul nume nu este specificat, atunci se inserează \033. Denumirile acceptate în prezent sunt: „black” (negru), „blink” (clipire), „blue” (albastru), „bold” (aldin), „brown” (maron), „cyan” (cian, albastru-verzui), „darkgray” (gri închis), „gray” (gri), „green” (verde), „halfbright” (semiluminos), „lightblue” (albastru deschis), „lightcyan” (cian deschis), „lightgray” (gri deschis), „lightgreen” (verde deschis), „lightmagenta” (magenta deschis), „lighttred” (roșu deschis), „magenta”, „red” (roșu), „reset” (restabilire), „revers” (inversare), „yellow” (galben) și „white” (alb). Toate numele necunoscute sunt ignorate în tăcere.

s
    Inserează numele sistemului (numele sistemului de operare). La fel ca «uname -s». A se vedea și codul de eludare \S.

S sau S{VARIABLE}
    Inserează datele VARIABILE din /etc/os-release. Dacă acest fișier nu există, atunci se revine la /usr/lib/os-release. Dacă argumentul VARIABILE nu este specificat, atunci se utilizează PRETTY_NAME din fișier sau numele sistemului (a se vedea \s). Acest cod de eludare poate fi utilizat pentru a păstra distribuția și lansarea /etc/issue independente. Rețineți că \S{ANSI_COLOR} este convertit în secvența de eludare reală a terminalului.

l
    Inserează numele liniei tty curente.

m
    Inserează identificatorul de arhitectură al mașinii. La fel ca uname -m.

n
    Inserează numele de nod al mașinii, cunoscut și sub numele de gazdă. La fel ca uname -n.

o
    Inserează numele de domeniu NIS al mașinii. La fel ca hostname -d.

O
    Inserează numele de domeniu DNS al mașinii.

r
    Inserează numărul de versiune al sistemului de operare. La fel ca uname -r.

t
    Inserează ora curentă.

u
    Inserează numărul de utilizatori conectați în prezent.

U
    Inserează șirul de caractere "1 utilizator" sau "<n> utilizatori", unde <n> este numărul de utilizatori actuali conectați.

v
    Inserează versiunea sistemului de operare, adică data construirii și altele asemenea.

Un exemplu. Pe sistemul meu, următorul fișier /etc/issue:

    Acesta este \n.\o (\s \m \r) \t

se afișează ca:

    Acesta este vader.stardark.ro (Linux i386 1.1.9) 18:29:30

FIȘIERE

/var/run/utmp
    fișierul de stare al sistemului.

/etc/issue
    afișat înainte de solicitarea de autentificare.

/etc/os-release /usr/lib/os-release
    datele de identificare ale sistemului de operare.

/dev/console
    rapoarte de probleme (dacă nu se utilizează syslog(3)).

/etc/inittab
    init(8) fișierul de configurare pentru demonul «init» în stil SysV.

ACREDITĂRI

agetty acceptă configurarea prin intermediul acreditărilor systemd (a se vedea agetty citește următoarele acreditări systemd:

agetty.autologin (șir)
    Dacă este definită, configurează agetty pentru a se conecta automat la utilizatorul specificat fără a cere un nume de utilizator sau o parolă, în mod similar cu opțiunea --autologin.

ERORI

Caracteristica de detectare a vitezei de baud (opțiunea --extract-baud) necesită ca agetty să fie programată suficient de repede după terminarea unui apel de apelare (în decurs de 30 ms cu modemurile care comunică la 2400 baud). Pentru robustețe, folosiți întotdeauna opțiunea --extract-baud în combinație cu un argument de linie de comandă cu mai multe viteze de transmisie în baud, astfel încât să fie activată procesarea BREAK.

Textul din fișierul /etc/issue (sau altul) și promptul de conectare sunt întotdeauna afișate cu caractere pe 7 biți și paritate de spațiu.

Caracteristica de detectare a vitezei de baud (opțiunea --extract-baud) necesită ca modemul să emită mesajul de stare după crearea liniei DCD.

DIAGNOSTICARE

În funcție de modul în care a fost configurat programul, toate diagnosticele sunt scrise pe dispozitivul de consolă sau sunt raportate prin intermediul serviciului syslog(3). Mesajele de eroare sunt produse dacă argumentul port nu specifică un dispozitiv de terminal; dacă nu există o intrare „utmp” pentru procesul curent (numai pentru System V); și așa mai departe.

AUTORI

Originalul agetty pentru terminale seriale a fost scris de și adaptat la Linux de

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți

DISPONIBILITATE

Comanda agetty face parte din pachetul util-linux care poate fi descărcat de la