agetty - alternativ Linux getty
agetty [flaggor] port [baud_rate...]
[term]
agetty öppnar en tty-port, frågar efter ett
inloggningsnamn och startar kommandot /bin/login. Det anropas normalt av
init(8).
agetty har flera icke-standardiserade funktioner som
är användbara både för fasta och uppringda
linjer:
•Anpassar tty-inställningarna till
paritetsbitar och till radering, dödande, radavslutande och versala
tecken när det läser ett inloggningsnamn. Programmet kan hantera
7-bitars tecken med jämn, udda, ingen eller mellanslagsparitet och
8-bitars tecken utan paritet. Följande specialtecken känns igen:
Control-U (kill); DEL och backspace (radera); carriage return och line feed
(slutet av raden). Se även flaggorna --erase-chars och
--kill-chars.
•Alternativt kan baudhastigheten härledas
från CONNECT-meddelandena som produceras av Hayes(tm)-kompatibla
modem.
•Om du vill kan du välja att inte
lägga på när du får en redan öppen linje
(användbart för återuppringning).
•Eventuellt visas inte innehållet i filen
/etc/issue.
•Visar valfritt alternativa issue-filer eller
-kataloger i stället för /etc/issue eller
/etc/issue.d.
•Eventuellt frågar inte efter ett
inloggningsnamn.
•Alternativt anropas ett icke-standardiserat
inloggningsprogram i stället för /bin/login.
•Valfritt att aktivera flödeskontroll
för hårdvara.
•Om du vill kan du tvinga linjen att vara lokal
utan att behöva använda carrier detect.
Detta program använder inte filerna /etc/gettydefs
(System V) eller /etc/gettytab (SunOS 4).
port
Ett sökvägsnamn i förhållande
till katalogen
/dev. Om ett "-" anges antar
agetty att
dess standardinmatning redan är ansluten till en tty-port och att en
anslutning till en fjärranvändare redan har upprättats.
Enligt System V ska ett "-" port-argument
föregås av ett "--".
baud_rate,...
En kommaseparerad lista med en eller flera
baudhastigheter. Varje gång
agetty tar emot ett BREAK-tecken
avancerar den genom listan, som behandlas som om den vore cirkulär.
Baudhastigheterna bör anges i fallande ordning, så
att nolltecknet (Ctrl-@) också kan användas för att
byta baudrate.
Detta argument är valfritt och onödigt för
virtuella terminaler.
Standardinställningen för seriella terminaler
är att behålla den aktuella baudhastigheten (se
--keep-baud) och om det inte lyckas så är
standardinställningen '9600'.
term
Det värde som ska användas för
miljövariabeln
TERM. Detta åsidosätter vad
init(1) kan ha ställt in, och ärvs av inloggning och
skalet.
Standardvärdet är "vt100" eller
"linux" för Linux på en virtuell terminal eller
"hurd" för GNU Hurd på en virtuell terminal.
-8, --8bits
Antag att tty:n är 8-bitars ren och inaktivera
därför paritetsdetektering.
-a, --autologin username
Loggar automatiskt in den angivna användaren utan
att fråga efter användarnamn eller lösenord. Om du
använder den här flaggan läggs flaggan
-f
användarnamn och ett argument till på kommandoraden
/bin/login. Se
--login-options, som kan användas
för att ändra denna flaggas beteende.
Observera att --autologin kan påverka hur
getty initierar den seriella linjen, eftersom agetty inte
läser från linjen vid auto-login och inte har någon
möjlighet att optimera linjeinställningen.
-c, --noreset
Återställ inte terminalens cflags
(kontrollägen). Se
termios(3) för mer information.
-E, --remote
Vanligtvis får kommandot
login(1) ett
fjärrvärdsnamn när det anropas av t.ex.
telnetd(8). Med den här flaggan kan
agetty skicka det som
används som värdnamn till
login(1) för
användning i
utmp(5). Se
--host,
login(1) och
utmp(5).
Om flaggan --host fakehost anges, läggs
flaggan -h fakehost och argumentet till på
kommandoraden /bin/login.
Om flaggan --nohostname anges, läggs flaggan
-H till på kommandoraden /bin/login.
Se --login-options.
-f, --issue-file sökväg
Anger en ":"-avgränsad lista med filer
och kataloger som ska visas i stället för /etc/issue
(eller annat). Alla angivna filer och kataloger visas, filer som saknas eller
är tomma ignoreras. Om den angivna sökvägen är en
katalog visas alla filer med filändelsen .issue i
versionssorteringsordning från katalogen. Detta gör att
anpassade meddelanden kan visas på olika terminaler. Flaggan
--noissue åsidosätter denna flagga.
--show-issue
Visa aktuell issue-fil (eller annan) på den
aktuella terminalen och avsluta. Använd den här flaggan
för att granska den aktuella inställningen, det är inte
avsett för något annat ändamål. Observera att
utdata kan använda viss standardinformation eller ofullständig
information eftersom korrekt utdata beror på terminal och
agetty-kommandoraden.
-h, --flow-control
Aktivera flödeskontroll för hårdvara
(RTS/CTS). Det är upp till applikationen att inaktivera
flödesprotokoll för programvara (XON/XOFF) där så
är lämpligt.
-H, --host fakehost
Skriv in den angivna fakehost i utmp-filen.
Normalt anges ingen inloggningsvärd, eftersom agetty
används för lokala trådbundna anslutningar och konsoler.
Den här flaggan kan dock vara användbar för att
identifiera terminalkoncentratorer och liknande.
-i, --noissue
Visa inte innehållet i /etc/issue (eller
annat) innan du skriver inloggningsprompten. Terminaler eller
kommunikationshårdvara kan bli förvirrade när de tar emot
mycket text i fel baudhastighet; uppringda skript kan misslyckas om
inloggningsprompten föregås av för mycket text.
-I, --init-string initstring
Ställ in en initial sträng som ska skickas
till tty eller modem innan något annat skickas. Detta kan
användas för att initiera ett modem. Icke-tryckbara tecken kan
skickas genom att deras oktalkod föregås av ett backslash (\).
Om du t.ex. vill skicka ett radmatningstecken (ASCII 10, oktal 012) skriver du
\12.
-J, --noclear
Töm inte skärmen innan du frågar
efter inloggningsnamnet. Som standard rensas skärmen.
-l, --login-program login_program
Anropar det angivna login_programmet
istället för /bin/login. Detta gör det möjligt att
använda ett inloggningsprogram som inte är standard. Ett
sådant program kan t.ex. be om ett uppringningslösenord eller
använda en annan lösenordsfil. Se --login-options.
-L, --local-line[=läge]
Kontrollerar linjeflaggan CLOCAL. Det valfria
läge-argumentet är
auto,
always eller
never. Om argumentet
läge utelämnas är
standardvärdet
always. Om flaggan
--local-line inte anges
alls är standardvärdet
auto.
always
Tvingar linjen att vara en lokal linje utan behov av
bärvågsdetektering. Detta kan vara användbart när
du har en lokalt ansluten terminal där den seriella linjen inte
ställer in signalen för bärvågsdetektering.
never
Rensar explicit CLOCAL-flaggan från
linjeinställningen och den bärvågsdetekterande signalen
förväntas på linjen.
auto
Den goda standardinställningen.
Ändrar inte CLOCAL-inställningen och följer den
inställning som aktiveras av kärnan.
-m, --extract-baud
Försök att utläsa baudhastigheten ur
statusmeddelandet CONNECT som produceras av Hayes(tm)-kompatibla modem. Dessa
statusmeddelanden är av formen:
"<junk><speed><junk>".
agetty
förutsätter att modemet sänder ut sitt statusmeddelande
med samma hastighet som anges med (det första)
baud_rate-värdet på kommandoraden.
Eftersom funktionen --extract-baud kan misslyckas på
tungt belastade system, bör du ändå aktivera
BREAK-behandling genom att räkna upp alla förväntade
baudhastigheter på kommandoraden.
--list-speeds
Visar stödda baudhastigheter. Dessa bestäms
vid kompileringstillfället.
-n, --skip-login
Fråga inte användaren efter ett
inloggningsnamn. Detta kan användas i samband med flaggan
--login-program för att starta en icke-standardiserad
inloggningsprocess, t.ex. ett BBS-system. Observera att med flaggan
--skip-login får agetty ingen information från den
användare som loggar in och kan därför inte räkna
ut paritet, teckenstorlek och newline-behandling för anslutningen.
Standardinställningen är mellanslagsparitet, 7-bitars tecken och
ASCII CR (13) som tecken i slutet av raden. Tänk på att det
program som agetty startar (vanligtvis /bin/login) körs som
root.
-N, --nonewline
Skriv inte ut en ny rad innan du skriver ut
/etc/issue.
-o, --login-options login_options
Flaggor och argument som skickas till
login(1).
Där \u ersätts av inloggningsnamnet. Till exempel:
--login-options '-h darkstar -- \u'
Se --autologin, --inloggningsprogram och
--remote.
Läs SÄKERHETSANMÄRKNING nedan innan du
använder denna flagga.
-p, --login-pause
Vänta på en tangent innan du går
till inloggningsprompten. Kan kombineras med --autologin för att
spara minne genom att slentrianmässigt skapa skal.
-r, --chroot katalog
Byt rot till den angivna katalogen.
-R, --hangup
Ring
vhangup(2) för att göra en
virtuell upphängning av den angivna terminalen.
-s, --keep-baud
Försök att behålla den befintliga
baudhastigheten. Baudhastigheterna från kommandoraden används
när agetty tar emot ett BREAK-tecken. Om en annan baudhastighet
anges sparas även den ursprungliga baudhastigheten i slutet av listan
över önskade baudhastigheter. Detta kan användas
för att återgå till den ursprungliga baudhastigheten
efter oväntade BREAKs.
-t, --timeout tidsgräns
Avsluta om inget användarnamn kunde läsas
inom tidsgräns sekunder. Användning av denna flagga med
fast anslutna terminallinjer rekommenderas inte.
-U, --detect-case
Aktivera stöd för att upptäcka en
terminal med enbart versaler. Den här inställningen kommer att
upptäcka att ett inloggningsnamn som bara innehåller versaler
indikerar en terminal med enbart versaler och aktivera vissa konverteringar
från versaler till gemener. Observera att detta inte har något
stöd för några Unicode-tecken.
-w, --wait-cr
Vänta på att användaren eller
modemet skickar en carriage-return eller ett linefeed-tecken innan filen
/etc/issue (eller andra) och inloggningsprompten skickas. Detta
är användbart med flaggan --init-string.
--nohints
Skriv inte ut tips om Num-, Caps- och
Scroll-lås.
--nohostname
Som standard kommer värdnamnet att skrivas ut. Om
den här flaggan är aktiverat visas inget värdnamn alls.
Den här inställningen är också möjlig att
göra med flaggan LOGIN_PLAIN_PROMPT i konfigurationsfilen
/etc/login.defs (se nedan för mer information).
--long-hostname
Som standard skrivs värdnamnet bara ut fram till
den första punkten. Om den här flaggan är aktiverat visas
det fullständigt kvalificerade värdnamnet med
gethostname(3P) eller (om det inte hittas) med
getaddrinfo(3).
--erase-chars sträng
Den här flaggan anger ytterligare tecken som ska
tolkas som ett backsteg ("ignorera föregående tecken")
när användaren skriver inloggningsnamnet. Standardvärdet
för ytterligare "erase" har varit "#", men sedan
util-linux 2.23 aktiveras inga ytterligare erase-tecken som standard.
--kill-chars sträng
Den här flaggan anger ytterligare tecken som ska
tolkas som en kill ("ignorera alla tidigare tecken") när
användaren skriver inloggningsnamnet. Standardvärdet för
ytterligare "kill" har varit "@", men sedan util-linux
2.23 är inga ytterligare "kill"-tecken aktiverade som
standard.
--chdir katalog
Byt katalog före inloggningen.
--delay nummer
Sova några sekunder innan tty öppnas.
--nice nummer
Kör inloggning med denna prioritet.
--reload
Be alla
agetty-instanser som körs att ladda
om och uppdatera de meddelanden som visas, om användaren ännu
inte har börjat logga in. När detta har gjorts avslutas
kommandot. Den här funktionen kanske inte stöds på system
utan Linux
inotify(7).
--help
Visa hjälptext och avsluta.
--version
Visa version och avsluta.
agetty läser konfigurationsfilen
/etc/login.defs (se login.defs(5)). Observera att
konfigurationsfilen kan distribueras med ett annat paket (vanligtvis
shadow-utils). Följande konfigurationsobjekt är relevanta
för agetty:
LOGIN_PLAIN_PROMPT (boolean)
Berätta för agetty att utskrift av
värdnamnet ska undertryckas i login: prompten. Detta är ett
alternativ till kommandoradsflaggan --nohostname. Standardvärdet
är no.
I det här avsnittet visas exempel på
processfältet i en post i filen /etc/inittab. Du måste
ange lämpliga värden för de andra fälten. Se
inittab(5) för mer information.
För en kabelansluten linje eller en konsol-tty:
För en direktansluten terminal utan korrekt kabeldragning
för bärvågsdetektering (prova detta om din terminal
bara sover i stället för att ge dig ett lösenord:
prompt):
/sbin/agetty --local-line 9600 ttyS1 vt100
För en gammaldags uppringd linje med ett modem på
9600/2400/1200 baud:
/sbin/agetty --extract-baud --timeout 60 ttyS1
9600,2400,1200
För ett Hayes-modem med ett fast 115200
bps-gränssnitt till maskinen (exemplets init-sträng
stänger av modemeko och resultatkoder, gör att modem/dator DCD
följer modem/modem DCD, gör att ett DTR-fall orsakar en
frånkoppling och aktiverar autosvar efter 1 ringning):
/sbin/agetty --wait-cr --init-string
'ATE0Q1&D2&C1S0=1\015' 115200 ttyS1
Om du använder flaggorna --login-program och
--login-options bör du vara medveten om att en illvillig
användare kan försöka ange loggnamn med
inbäddade alternativ, som sedan skickas till det inloggningsprogram
som används. agetty kontrollerar om det finns ett inledande
"-" och ser till att loggnamnet skickas som en parameter
(så att inbäddade mellanslag inte skapar ytterligare en
parameter), men beroende på hur inloggningsbinärprogrammet
analyserar kommandoraden kanske det inte är tillräckligt.
Kontrollera att det inloggningsprogram som används inte kan
missbrukas på det här sättet.
Vissa program använder "--" för att ange
att resten av kommandoraden inte ska tolkas som flaggor. Använd denna
funktion om den är tillgänglig genom att skicka "--"
innan användarnamnet skickas vidare till \u.
Standardutgåvofilen är /etc/issue. Om filen
finns kontrollerar agetty även om katalogen
/etc/issue.d finns. Katalogen är ett valfritt tillägg
till standardutgåvofilen och innehållet i katalogen skrivs ut
efter innehållet i /etc/issue. Om /etc/issue inte finns
ignoreras katalogen. Alla filer med .issue-tillägg från
katalogen skrivs ut i versionssorterad ordning. Katalogen kan
användas för att underhålla meddelanden från
tredje part oberoende av det primära systemets
/etc/issue-fil.
Sedan version 2.35 stöds ytterligare platser för
issue-filen och -katalogen. agetty söker efter filerna
/run/issue och /run/issue.d och sedan efter
/usr/lib/issue och /usr/lib/issue.d. Katalogen /etc
förväntas innehålla värdspecifik konfiguration,
/run förväntas innehålla genererat
innehåll och /usr/lib används för statisk
konfiguration som underhålls av distributionen.
Observera att i versionerna 2.35 till 2.40 lästes de
ytterligare platserna endast om standardfilen /etc/issue inte fanns.
Men sedan version 2.41 läses de ytterligare platserna alltid, oavsett
om filen /etc/issue finns eller inte. Denna ändring gör
det möjligt att generera issue-filer som standard.
The default paths may be completely overridden by the
--issue-file option. In this case the specified path has to be a file
or directory and all the default issue file and directory locations are
ignored.
Funktionen för problemfiler kan inaktiveras helt med
flaggan --noissue.
Det är möjligt att granska den aktuella
utgivningsfilen genom agetty --show-issue på den aktuella
terminalen.
Emissionsfilerna kan innehålla vissa escape-koder
för att visa systemnamn, datum, tid etc. Alla escape-koder
består av ett backslash (\) omedelbart följt av något
av de tecken som anges nedan.
4 eller 4{interface}
Ange IPv4-adressen för det angivna
nätverksgränssnittet (t.ex. \4{eth0}). Om argumentet
interface inte anges, väljs det första fullt
konfigurerade (UP, non-LOCALBACK, RUNNING) gränssnittet. Om inget
konfigurerat gränssnitt hittas, faller du tillbaka till IP-adressen
för maskinens värdnamn.
6 eller 6{interface}
Samma sak som \4 men för IPv6.
a
Insert list of "good" IP addresses for all
interfaces. It prints best candidates for remote login IP addresses: global
and site addresses; if not available, temporary address with the longest
lifetime, if not available, link address. Note that link addresses are printed
with local interface name, but they has to be done with the interface name on
the machine where they will be used.
A
Insert list of all IP addresses for all interfaces.
b
Infoga baudrate för den aktuella raden.
d
Infoga aktuellt datum.
e eller e{name}
Översätt det mänskligt
läsbara namn till en escape-sekvens och infoga den (t.ex.:
\e{red}Alert text.\e{reset}). Om argumentet namn inte har angetts
infogas \033. De namn som för närvarande stöds är:
svart, blink, blå, fet, brun, cyan, mörkgrå, grå,
grön, halvljus, ljusblå, ljuscyan, ljusgrå,
ljusgrön, ljusmagenta, ljusröd, magenta, röd, reset,
reverse, gul och vit. Alla okända namn ignoreras i tysthet.
s
Infoga systemnamnet (namnet på operativsystemet).
Samma som "uname -s". Se även escape-koden \S.
S eller S{VARIABLE}
Infoga VARIABLE-data från /etc/os-release.
Om denna fil inte finns, återgår man till
/usr/lib/os-release. Om VARIABLE-argumentet inte anges används
PRETTY_NAME från filen eller systemnamnet (se \s). Denna escape code
kan användas för att hålla distributionen av
/etc/issue och releasen oberoende av varandra. Observera att
\S{ANSI_COLOR} konverteras till den riktiga terminalens escape-sekvens.
l
Infoga namnet på den aktuella tty-linjen.
m
Infoga maskinens arkitekturidentifierare. Samma som
uname -m.
n
Ange maskinens nodnamn, även känt som
värdnamnet. Samma som uname -n.
o
Ange NIS-domännamnet för maskinen. Samma
som hostname -d.
A
Ange maskinens DNS-domännamn.
r
Ange versionsnumret för operativsystemet. Samma
som uname -r.
t
Ange aktuell tid.
u
Ange antalet användare som är inloggade
för närvarande.
U
Infoga strängen "1 user" eller
"<n> users" där <n> är antalet inloggade
användare för närvarande.
v
Ange versionen av operativsystemet, det vill säga
byggdatum och liknande.
Ett exempel. På mitt system finns följande fil
/etc/issue:
Detta är \n.\o (\s \m \r) \t
visas som:
Detta är thingol.orcan.dk (Linux i386 1.1.9) 18:29:30
/var/run/utmp
systemstatusfilen.
/etc/issue
skrivs ut före inloggningsuppmaningen.
_/etc/os-release /usr/lib/os-release
identifieringsdata för operativsystemet.
_/dev/konsol
problemrapporter (om
syslog(3) inte
används).
/etc/inittab
init(8) Konfigurationsfil för SysV-liknande
init-daemon.
agetty stöder konfiguration via
systemd-autentiseringsuppgifter (se
https://systemd.io/CREDENTIALS/). agetty läser
följande systemd-autentiseringsuppgifter:
agetty.autologin (sträng)
Om den är inställd konfigurerar
agetty att automatiskt logga in den angivna användaren utan att
fråga efter användarnamn eller lösenord, på samma
sätt som med flaggan --autologin.
Funktionen för baudhastighetsdetektering (flaggan
--extract-baud) kräver att agetty schemaläggs
tillräckligt snart efter att ett uppringt samtal har avslutats (inom
30 ms med modem som talar med 2400 baud). För robusthetens skull
bör du alltid använda flaggan --extract-baud i
kombination med ett kommandoradsargument för flera baudhastigheter,
så att BREAK-behandling aktiveras.
Texten i filen /etc/issue (eller annan) och
inloggningsprompten matas alltid ut med 7-bitars tecken och
mellanslagsparitet.
Funktionen för detektering av baudhastighet (flaggan
--extract-baud) kräver att modemet sänder ut sitt
statusmeddelande efter att DCD-linjen har lyfts.
Beroende på hur programmet har konfigurerats skrivs all
diagnostik till konsolenheten eller rapporteras via
syslog(3)-funktionen. Felmeddelanden genereras om argumentet
port inte anger en terminalenhet, om det inte finns någon
utmp-post för den aktuella processen (endast System V), och så
vidare.
Werner Fink <werner@suse.de>, Karel Zak
<kzak@redhat.com>
Den ursprungliga agetty för seriella terminaler
skrevs av W.Z. Venema <wietse@wzv.win.tue.nl> och portades till
Linux av Peter Orbaek <poe@daimi.aau.dk>.