NOM¶
agetty - getty alternatif pour Linux
SYNOPSIS¶
agetty [options] port [taux_baud...]
[term]
DESCRIPTION¶
agetty ouvre un port de terminal, demande un nom
d’utilisateur, puis appelle la commande /bin/login. Il est
normalement appelé par init(8).
agetty a plusieurs fonctionnalités non
normalisées qui sont utiles pour les lignes série et
modem:
•Adapter la configuration du terminal aux bits de
parité et aux caractères supprimer, tuer, fin de ligne et
majuscules lors de la lecture de l’identifiant de connexion. Le
programme peut gérer les caractères 7 bits avec une
parité paire, impaire, aucune ou parité 0 et les
caractères 8 bits sans parité. Les caractères
spéciaux suivants sont reconnus :
« Ctrl-U » (tuer) ; suppression et espace
arrière (supprimer) ; retour chariot et changement de ligne (fin
de ligne). Consultez également les options --erase-chars et
--kill-chars.
•Option pour trouver la vitesse en baud des
messages CONNECT produits par les modems Hayes™ ou compatibles.
•Option pour ne pas raccrocher quand il y a
déjà une ligne ouverte (utile pour les applications avec
rappel).
•Option pour ne pas afficher le contenu du fichier
/etc/issue.
•Option pour afficher un autre fichier ou
répertoire issue à la place de /etc/issue ou
/etc/issue.d.
•Option pour ne pas demander de nom
d’utilisateur.
•Option pour appeler un programme de connexion non
standard au lieu de /bin/login.
•Option pour activer le contrôle
matériel de flux.
•Option pour forcer la ligne à être
locale sans nécessité de détection de porteuse.
Ce programme n’utilise pas les fichiers
/etc/gettydefs (Système V) ou /etc/gettytab
(SunOS 4).
ARGUMENTS¶
port
Un nom de chemin relatif au répertoire
/dev. Si un «
- » est
utilisé,
agetty suppose que son entrée standard est
déjà connectée à un port de terminal et que la
connexion à un utilisateur distant est déjà
établie.
Sous Système V, un paramètre port avec
la valeur « - » doit être
précédé de
« -- ».
taux_baud,...
Une liste de vitesses en baud séparées par
des virgules. Chaque fois que
agetty reçoit un caractère
BREAK, il avance dans la liste qui sera considérée comme une
liste circulaire.
Les vitesses devraient être indiquées en ordre
décroissant, de telle sorte que l’octet NULL final (Ctrl-@)
puisse être utilisé pour changer de vitesse.
Cet argument est facultatif et inutile pour les terminaux
virtuels.
La valeur par défaut pour les terminaux série
est de conserver la vitesse actuelle (consultez --keep-baud) et en
cas d’insuccès, la valeur par défaut
« 9600 ».
term
La valeur à utiliser pour la variable
d’environnement
TERM. Cela surcharge toute valeur
positionnée par
init(1) et est héritée par la
connexion et l’interpréteur de commandes.
La valeur par défaut est
« vt100 » ou
« linux » pour Linux sur un terminal virtuel ou
« hurd » pour le GNU Hurd sur un terminal
virtuel.
OPTIONS¶
-8, --8bits
Supposer que le terminal gère les
caractères 8 bits, désactiver de ce fait la
détection de parité.
-a, --autologin nom_utilisateur
Connecter automatiquement l’utilisateur
indiqué sans demander un identifiant ou un mot de passe. Utiliser cette
option fait que l’option et l’argument
-f
nom_utilisateur sont ajoutés à la ligne de commande de
/bin/login. Consultez
--login-options qui peut être
utilisée pour modifier le comportement de cette option.
Remarquez que --autologin peut affecter la façon
dont agetty initialise une ligne série, car lors d’une
connexion automatique agetty ne lit pas à partir de la ligne
et n’a aucune opportunité d’optimisation des
réglages de la ligne.
-c, --noreset
Ne pas réinitialiser les cflags du terminal (modes
de contrôle). Consultez
termios(3) pour plus de
précisions.
-E, --remote
Classiquement, la commande
login(1) est fournie
avec un non d’hôte distant lorsqu’elle est appelée
par quelque chose comme
telnetd(8). Cette option permet à
agetty de passer ce qu’il utilise comme nom d’hôte
à
login(1) pour une utilisation dans
utmp(5). Consultez
--host,
login(1) et
utmp(5).
Si une option --host hôte_factice est
donnée, alors une option -h hôte_factice est
ajoutée à la ligne de commande /bin/login.
Si l’option --nohostname est fournie, alors une
option -H est ajoutée à la ligne de commande
/bin/login.
Consultez --login-options.
-f, --issue-file chemin
Specifies a ":" delimited list of files and
directories to be displayed instead of /etc/issue (or other). All
specified files and directories are displayed, missing or empty files are
silently ignored. If the specified path is a directory then display all files
with .issue file extension in version-sort order from the directory.
This allows custom messages to be displayed on different terminals. The
--noissue option will override this option.
--show-issue
Display the current issue file (or other) on the current
terminal and exit. Use this option to review the current setting, it is not
designed for any other purpose. Note that output may use some default or
incomplete information as proper output depends on terminal and agetty
command line.
-h, --flow-control
Activer le contrôle matériel de flux
(RTS/CTS). L’application est libre de désactiver le
contrôle logiciel de flux (XON/XOFF) quand elle le juge opportun.
-H, --host hôte_factice
Écrire l’hôte de connexion
hôte_factice indiqué dans le fichier utmp.
Normalement, aucun hôte de connexion n’est fourni, puisque
agetty est utilisé pour les connexions filaires locales et les
terminaux du système. Cependant, cette option peut être utile
pour identifier les concentrateurs de terminaux et matériels
similaires.
-i, --noissue
Ne pas afficher le contenu de /etc/issue (ou
autre) avant d’écrire l’invite de connexion. Les
terminaux ou le matériel de communication peuvent ne pas fonctionner
normalement lorsqu’ils reçoivent beaucoup de texte à une
mauvaise vitesse ; les scripts de connexion peuvent échouer si
l’invite de connexion est précédée par beaucoup
trop de texte.
-I, --init-string chaîne_initiale
Définir une chaîne_initiale à
envoyer au terminal ou au modem avant d’envoyer des données
utiles. Cela peut être utilisé pour initialiser un modem. Les
caractères non imprimables peuvent être envoyés en
utilisant leur code octal précédé d’une barre
oblique inversée (\). Par exemple, pour envoyer le caractère de
changement de ligne (ASCII 10, dont le code octal est 012), il faut
envoyer « \12 ».
-J, --noclear
Ne pas effacer l’écran avant de demander
l’identifiant de connexion. Par défaut, l’écran
est effacé.
-l, --login-program programme_connexion
Appeler le programme de connexion
programme_connexion à la place de /bin/login. Cela permet
d’utiliser un programme de connexion non standard. Un tel programme,
par exemple, peut demander un mot de passe lors de
l’établissement de la connexion ou utiliser un fichier de mot de
passe différent. Consultez --login-options.
-L, --local-line[=mode]
Control the CLOCAL line flag. The optional
mode
argument is
auto,
always or
never. If the
mode
argument is omitted, then the default is
always. If the
--local-line option is not given at all, then the default is
auto.
always
Le mode always force la ligne à
être une ligne locale sans détection de porteuse. C’est
utile pour un terminal connecté localement dont la ligne série
n’utilise pas le signal « détection de
porteuse ».
never
Le mode never efface explicitement
l’attribut CLOCAL de la configuration de la ligne et le signal
« détection de porteuse » est attendu sur
la ligne.
auto
La valeur par défaut pour agetty. Cela ne
modifie pas la configuration CLOCAL et suit la configuration activée
par le noyau.
-m, --extract-baud
Essayer d’extraire la vitesse depuis le message
d’état CONNECT produit par les modems compatibles Hayes™.
Ces messages d’état sont de la forme suivante :
« <bruit><vitesse><bruit> ».
agetty suppose que le modem envoie les messages d’état
à la même vitesse que celle indiquée (la première)
par
taux_baud sur la ligne de commande.
Puisque la fonctionnalité --extract-baud peut
échouer sur des systèmes lourdement chargés, vous
devriez activer le traitement de BREAK en énumérant toutes les
vitesses attendues sur la ligne de commande.
--list-speeds
Afficher les vitesses prises en charge. Elles sont
déterminées au moment de la compilation.
-n, --skip-login
Ne pas demander d’identifiant de connexion
à l’utilisateur. Cela peut être utilisé avec
l’option --login-program lors d’une procédure de
connexion non standard comme les systèmes BBS. Remarquez qu’avec
l’option --skip-login, agetty ne reçoit pas de
saisie de l’utilisateur qui se connecte et donc n’est pas
capable de détecter la parité, la taille des caractères
ni le processus de nouvelle ligne de la connexion. La configuration par
défaut est : parité 0, caractères
7 bits et le caractère fin de ligne est le retour chariot RC en
ASCII (13). Assurez vous que le programme lancé par
agetty (en général, /bin/login) est
exécuté avec les droits du superutilisateur.
-N, --nonewline
Ne pas ajouter de changement ligne avant
d’écrire /etc/issue.
-o, --login-options options_connexion
Options et arguments passés à
login(1), où \u est remplacé par le nom de connexion. Par
exemple :
--login-options '-h darkstar -- \u'
Consultez --autologin, --login-program et
--remote.
Please read the SECURITY NOTICE below before using this
option.
-p, --login-pause
Attendre une action sur une touche avant de basculer vers
l’invite de connexion. Cela peut être combiné avec
--autologin pour économiser de la mémoire avec les
interpréteurs de commandes lents à relancer.
-r, --chroot répertoire
Modifier la racine vers le répertoire
indiqué.
-R, --hangup
Appeler
vhangup(2) pour faire un raccrochage
virtuel du terminal indiqué.
-s, --keep-baud
Essayer de conserver la vitesse existante. Les vitesses
reçues sur la ligne de commande sont utilisées quand
agetty reçoit un caractère BREAK. Si d’autres
vitesses sont indiquées, alors la vitesse originale est aussi
enregistrée à la fin de la liste des vitesses
désirées. Cela peut être utilisé pour retourner
à la vitesse originale après des BREAK inattendus.
-t, --timeout délai
Quitter si aucun nom d’utilisateur n’a pu
être lu pendant le délai exprimé en seconde. Cette
option ne devrait pas être utilisée pour les lignes filaires de
terminaux.
-U, --detect-case
Activer la détection des terminaux à
caractères majuscules seuls. Cela ne détectera qu’un
identifiant de connexion ne possédant que des caractères
majuscules et activera des opérations de conversions de casse
majuscules vers minuscules. Cette option ne gère aucun caractère
Unicode.
-w, --wait-cr
Attendre que l’utilisateur ou le modem envoient un
caractère retour à la ligne ou nouvelle ligne avant
d’envoyer le fichier /etc/issue (ou autres) et l’invite
de connexion. Cela est très utile lors de connexions avec
l’option --init-string.
--nohints
Ne pas afficher de conseils sur le verrouillage
numérique ou majuscules ni sur l’arrêt de
défilement.
--nohostname
By default the hostname will be printed. With this option
enabled, no hostname at all will be shown. This setting is also possible to
able by LOGIN_PLAIN_PROMPT option in the /etc/login.defs configuration
file (see below for more details).
--long-hostname
Par défaut, le nom d’hôte
n’est affiché que jusqu’au premier point. En activant
cette option, le nom d’hôte pleinement qualifié par
gethostname(3P), ou (si non trouvé) par
getaddrinfo(3),
est montré.
--erase-chars chaîne
Cette option indique des caractères
supplémentaires à interpréter comme une espace
arrière (« ignorer le caractère
précédent ») lorsque l’utilisateur saisit
l’identifiant de connexion. Le caractère supplémentaire
d’« effacement » par défaut
était « # », mais depuis
util-linux 2.23, aucun caractère supplémentaire
d’effacement n’est activé par défaut.
--kill-chars chaîne
Cette option indique des caractères
supplémentaires à interpréter pour tuer
(« ignorer tous les caractères
précédents ») lorsque l’utilisateur saisit
l’identifiant de connexion. Le caractère supplémentaire
« pour tuer » par défaut était
« @ », mais depuis util-linux 2.23, aucun
caractère supplémentaire pour tuer n’est activé
par défaut.
--chdir répertoire
Changer de répertoire avant la connexion.
--delay nombre
Temps de sommeil, en seconde, avant d’ouvrir le
tty.
--nice nombre
Exécuter la connexion avec cette
priorité.
--reload
Ask all running
agetty instances to reload and
update their displayed prompts, if the user has not yet commenced logging in.
After doing so the command will exit. This feature might be unsupported on
systems without Linux
inotify(7).
-h, --help
Afficher l’aide-mémoire puis quitter.
-V, --version
Afficher le numéro de version et quitter.
ÉLÉMENTS DU FICHIER DE CONFIGURATION¶
agetty reads the /etc/login.defs configuration file
(see login.defs(5)). Note that the configuration file could be
distributed with another package (usually shadow-utils). The following
configuration items are relevant for agetty:
LOGIN_PLAIN_PROMPT (booléen)
Tell agetty that printing the hostname should be
suppressed in the login: prompt. This is an alternative to the
--nohostname command line option. The default value is no.
EXEMPLE¶
Cette section présente des exemples pour le champ processus
d’une entrée dans le fichier /etc/inittab. Vous devrez
faire précéder les autres champs par les valeurs
appropriées. Consultez inittab(5) pour plus de
précisions.
Pour une ligne câblée ou une console
tty :
Pour un terminal connecté directement sans câblage
avec signal « détection de porteuse ».
Utilisez ceci si le terminal se met en veille au lieu de demander un mot de
passe :
/sbin/agetty --local-line 9600 ttyS1 vt100
Pour une ligne avec un vieux modem acceptant les vitesses de 9600,
2400 et 1200 bauds :
/sbin/agetty --extract-baud --timeout 60 ttyS1
9600,2400,1200
Pour un modem Hayes avec une vitesse fixe de 115\ 200 bauds
(la chaîne d’initialisation de l’exemple
désactive l’écho du modem et les codes de retour, fait
que le signal DCD du modem/ordinateur suive le signal DCD du modem distant,
fait que la disparition du signal DTR provoque une déconnexion et
active l’autoréponse après une sonnerie) :
/sbin/agetty --wait-cr --init-string
'ATE0Q1&D2&C1S0=1\015' 115200 ttyS1
AVIS DE SÉCURITɶ
If you use the --login-program and --login-options
options, be aware that a malicious user may try to enter lognames with
embedded options, which then get passed to the used login program.
agetty does check for a leading "-" and makes sure the
logname gets passed as one parameter (so embedded spaces will not create yet
another parameter), but depending on how the login binary parses the command
line that might not be sufficient. Check that the used login program cannot
be abused this way.
Certains programmes utilisent -- pour indiquer que la suite
de la ligne de commande ne devrait pas être interprétée
en tant qu’options. Utilisez cette fonctionnalité si elle est
disponible en passant « -- » avant que le nom
d’utilisateur ne soit passé par \u.
FICHIERS ISSUE¶
Le fichier issue par défaut est /etc/issue.
Si le fichier existe, alors agetty recherche aussi pour un
répertoire /etc/issue.d. Le répertoire est une
extension facultative au fichier issue par défaut et le
contenu du répertoire est écrit après le contenu de
/etc/issue. Si /etc/issue n’existe pas, alors le
répertoire est ignoré. Tous les fichiers avec une extension
.issue du répertoire sont écrits triés selon les
versions. Le répertoire peut être utilisé pour
gérer indépendamment les messages de parties tierces dans le
fichier principal /etc/issue du système.
Depuis la version 2.35 des emplacements
supplémentaires pour des fichiers et répertoires issue
sont gérés. Si le fichier par défaut /etc/issue
n’existe pas, alors agetty recherche /run/issue et
/run/issue.d, ensuite /usr/lib/issue et
/usr/lib/issue.d. Le répertoire /etc est attendu pour
une configuration spécifique à l’hôte, le
répertoire /run est attendu pour ce qui est
généré et le fichier /usr/lib pour la
configuration statique de la distribution.
Le chemin par défaut peut être écrasé
avec l’option --issue-file. Dans ce cas, le chemin
précisé doit être un fichier ou un répertoire et
tous les emplacements par défaut de fichier ou répertoire sont
ignorés.
La fonctionnalité du fichier issue peut être
désactivée complètement avec l’option
--noissue.
Il est possible d’examiner le fichier issue en cours
avec agetty --show-issue sur le terminal en cours.
Les fichiers issue peuvent contenir certains codes
d’échappement afin d’afficher le nom du système,
la date, l’heure, etc. Tous les codes
d’échappement sont formés d’une barre oblique
inversée (\) immédiatement suivie par l’une des
caractères suivants.
4 ou 4{interface}
Insert the IPv4 address of the specified network
interface (for example: \4{eth0}). If the interface argument is not
specified, then select the first fully configured (UP, non-LOCALBACK, RUNNING)
interface. If no configured interface is found, fall back to the IP address of
the machine’s hostname.
6 ou 6{interface}
Comme \4, mais pour l’IPv6.
b
Insérer la vitesse en baud de la ligne
actuelle.
d
Insérer la date actuelle.
e ou e{nom}
Transformer le nom lisible avec une
séquence d’échappement et l’insérer (par
exemple, \e{red}Alert text.\e{reset}). Si l’argument nom
n’est pas indiqué, alors insérer \033. Les noms
actuellement gérés sont black, blink, blue, bold, brown, cyan,
darkgray, gray, green, halfbright, lightblue, lightcyan, lightgray,
lightgreen, lightmagenta, lightred, magenta, red, reset, reverse, yellow et
white. Tous les noms inconnus sont ignorés silencieusement.
s
Insérer le nom du système (le nom du
système d’exploitation). Identique à uname -s.
Consultez également le code d’échappement \S.
S ou S{VARIABLE}
Insérer la donnée VARIABLE de
/etc/os-release. Si le fichier n’existe pas,
/usr/lib/os-release est alors utilisé. Si l’argument
VARIABLE n’est pas indiqué, alors utiliser PRETTY_NAME du
fichier ou le nom du système (consultez \s). Ce code
d’échappement permet de garder les /etc/issue de la
distribution et de la publication indépendants. Remarquez que
\S{ANSI_COLOR} est convertie en séquence réelle
d’échappement du terminal.
l
Insérer le nom de la ligne tty actuelle.
m
Insérer l’identifiant de
l’architecture de la machine. Identique à uname -m.
n
Insérer le nom de nœud de la machine, aussi
appelé nom d’hôte. Identique à uname
-n.
o
Insérer le nom de domaine NIS de la machine.
Identique à hostname -d.
O
Insérer le nom de domaine DNS de la machine.
r
Insérer le numéro de version du
système d’exploitation. Identique à uname
-r.
t
Insérer l’heure actuelle.
u
Insérer le nombre d’utilisateurs
actuellement connectés.
U
Insérer la chaîne « 1
utilisateur » ou « <n>
utilisateurs » où <n> est le nombre
d’utilisateurs actuellement connectés.
v
Insérer la version du système
d’exploitation, par exemple sa date de construction, etc.
Par exemple, si le fichier /etc/issue contient :
Voici \n.\o (\s \m \r) \t
il pourrait afficher :
Voici thingol.orcan.dk (Linux i386 1.1.9) 18:29:30
FICHIERS¶
/var/run/utmp
fichier d’état du système
/etc/issue
affichage avant l’invite de connexion
/etc/os-release /usr/lib/os-release
données d’identification du système
d’exploitation
/dev/console
rapports de problème (si
syslog(3)
n’est pas utilisée)
/etc/inittab
fichier de configuration d’
init(8) pour le
démon init de type SysV.
BOGUES¶
La détection de la vitesse de connexion (l’option
--extract-baud) nécessite que agetty soit
exécuté dès le début de l’appel
réseau (dans les 30 ms pour un modem communiquant à
2400 bauds). Pour être robuste, utilisez toujours
l’option --extract-baud avec comme argument de ligne de
commande différentes vitesses, ainsi le traitement de BREAK est
activé.
Le texte du fichier /etc/issue (ou d’un autre
fichier) et l’invite de connexion sont toujours affichés avec
des caractères 7 bits et la parité 0.
La fonctionnalité de détection de la vitesse
(l’option --extract-baud) nécessite que le modem envoie
son message d’état après avoir mis à un
état haut la ligne DCD.
DIAGNOSTICS¶
Suivant la façon dont le programme a été
configuré, tous les diagnostics sont dirigés vers le
périphérique de console ou signalés par le service
syslog(3). Des messages d’erreur sont produits si le
paramètre port ne précise pas un
périphérique de terminal, s’il n’y a pas
d’entrée utmp pour le processus actuel
(Système V uniquement), etc.
AUTEURS¶
Werner Fink <werner@suse.de>, Karel Zak
<kzak@redhat.com>
L’agetty d’origine pour les terminaux
série a été écrit par W.Z. Venema
<wietse@wzv.win.tue.nl> et porté pour Linux par Peter
Orbaek <poe@daimi.aau.dk>.