agetty [options] port [taux_baud ...]
[term]
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és, 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 issue à la place de
/etc/issue.
- 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 de flux matériel.
- 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).
- 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[,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 le caractère nul (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 sinon d’utiliser
« 9600 ».
- term
- La valeur à utiliser pour la variable d'environnement TERM.
Cela surcharge toute valeur positionnée par init(8) et qui
est héritée par la connexion et l'interpréteur de
commande.
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.
- -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
l'identifiant ni le mot de passe. L'option -f
nom_utilisateur est ajoutée par défaut à la
ligne de commande de /bin/login. L'option --login-options
modifie ce comportement par défaut : dans ce cas seul
\u est remplacé par nom_utilisateur, et aucune option
n'est ajoutée à la ligne de commande de login.
- -c, --noreset
- Ne pas réinitialiser les cflags du terminal (modes de
contrôle). Consultez termios(3) pour plus de
précisions.
- -E, --remote
- Si une option -H hôte_factice est donnée,
alors une option -r hôte_factice est ajoutée
à la ligne de commande /bin/login.
- -f, --issue-file
fichier_issue
- Afficher le contenu du fichier fichier_issue au lieu du fichier
/etc/issue. Cela permet de personnaliser les messages à
afficher sur les différents terminaux. L'option -i surcharge
cette option.
- -h,
--flow-control
- Activer le contrôle de flux matériel (RTS/CTS).
L'application est libre de désactiver le contrôle de flux
logiciel (XON/XOFF) quand elle le juge opportun.
- -H, --host
hôte_connexion
- Écrire l'hôte de connexion hôte_connexion
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 et 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 « \012 ».
- -J, --noclear
- Ne pas vider l'écran avant de demander l'identifiant
(l'écran est effacé normalement).
- -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 (par exemple, un programme qui demande un mot de passe lors de
l'établissement de la connexion ou qui utilise un fichier de mot de
passe différent).
- -L,
--local-line[=mode]
- Contrôler l’attribut de ligne CLOCAL. L’argument
facultatif mode est auto, always ou never. En
absence d’argument mode, la valeur par défaut est
always. Si l’option --local-line n’est pas
donnée du tout, la valeur par défaut est auto.
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 ».
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.
Le mode auto (la valeur par défaut pour
agetty) 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é -m peut échouer
sur des systèmes chargés, vous devriez activer le
traitement de BREAK en énumérant toutes les vitesses
attendues sur la ligne de commande.
- -n,
--skip-login
- Ne pas demander d'identifiant de connexion à l'utilisateur. Cela
peut être utilisé avec l'option -l lors d'une
procédure de connexion non standard comme les systèmes BBS.
Remarquez qu'avec l'option -n, agetty ne reçoit pas
les caractères 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 passées au programme de connexion. \u est
remplacé par l'identifiant de connexion. La ligne de commande par
défaut de /bin/login est « /bin/login
-- nom_utilisateur ».
Veuillez consulter l'AVIS DE SÉCURITÉ
ci-dessous si vous avez l'intention d'utiliser cela.
- -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() pour faire un raccrochage virtuel du terminal
indiqué.
- -s,
--keep-baud
- Essayer de conserver la vitesse existante. Les vitesses indiquées
sur la ligne de commande sont utilisées quand agetty
reçoit un caractère BREAK.
- -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 série.
- -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 et l'invite de connexion. Cela est très utile
lors de connexions avec l'option -I.
- --nohints
- Ne pas afficher de conseils sur le verrouillage numérique ou
majuscules ni sur l’arrêt de défilement.
- --nohostname
- Par défaut, le nom d'hôte sera affiché. En activant
cette option, aucun nom d'hôte ne sera montré.
- --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(), ou (si non trouvé) par
getaddrinfo(), 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
- Demander à toutes les instances agetty de recharger et mettre
à jour leurs invites de commande affichées, si
l’utilisateur n’a pas encore commencé à se
connecter. Après cela, la commande quittera. Cette
fonctionnalité pourrait ne pas être prise en charge sur les
systèmes sans inotify(7) de Linux.
- --version
- Afficher les informations sur la version et quitter.
- --help
- Afficher un texte d'aide puis quitter.
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 :
/sbin/agetty 9600 ttyS1
Pour un terminal connecté directement sans détection
de porteuse ligne (utilisez ceci si le terminal se met en veille au lieu de
demander un mot de passe) :
/sbin/agetty -L 9600 ttyS1 vt100
Pour une ligne avec un vieux modem acceptant les vitesses de 9600,
2400 et 1200 bauds :
/sbin/agetty -mt60 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 -w -I 'ATE0Q1&D2&C1S0=1\015' 115200
ttyS1
Si vous utilisez les options --login-program et
--login-options, soyez conscient qu'un utilisateur malveillant
pourrait essayer d'entrer des identifiants avec des options
intégrées, qui seraient alors passées au programme
login utilisé. agetty vérifie la présence
d'un - initial et s'assure que l'identifiant est passé comme
un paramètre (de telle sorte que les espaces incorporées ne
créent pas encore un autre paramètre), mais suivant la
façon dont le binaire login analyse la ligne de commande, cela
risque d'être insuffisant. Vérifiez que le programme
login utilisé ne peut pas être abusé de cette
façon.
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 avant que nom_utilisateur ne soit passé par
\u.
Le fichier issue (/etc/issue) ou le fichier défini
avec l'option -f 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 lettres suivantes.
- 4 ou 4{interface}
- Insérer l’adresse IPv4 de l’interface réseau
indiquée (par exemple \4{eth0}) et, si l’argument
d’interface n’est pas indiqué, alors
sélectionner la première interface complètement
configurée (activée, non boucle locale, en fonctionnement).
Si aucune interface configurée n’est trouvée, se
replier sur l’adresse IP du nom d’hôte de la
machine.
- 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.
- 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 réelle séquence 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
- /var/run/utmp
- fichier d’état du système
- /etc/issue
- affiché 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
La détection de la vitesse de connexion (l'option
-m) 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 -m avec différentes
vitesses de connexion, ainsi le traitement du 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 parité 0
La fonctionnalité de détection de la vitesse
(l'option -m) nécessite que le modem envoie son message
d'état après avoir mis à un état haut la
ligne DCD.
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.
Werner Fink
Karel Zak
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>.
La commande agetty fait partie du paquet util-linux, elle
est disponible sur
<ftp://ftp.kernel.org/pub/linux/utils/util-linux/>.