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:
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
<https://systemd.io/CREDENTIALS/>). 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¶
Werner Fink <werner@suse.de>, Karel Zak
<kzak@redhat.com>
Originalul agetty pentru terminale seriale a fost scris de
W.Z. Venema <wietse@wzv.win.tue.nl> și adaptat la Linux
de Peter Orbaek <poe@daimi.aau.dk>.