Les MANs Linux en français...
GETTY
Section: Manuel de l'utilisateur Linux (1)Updated: 5 mai 1999
Index Retour au Menu Principal
NOM
getty - Configurer le mode terminal, la vitesse et la discipline de ligne.SYNOPSIS
/etc/getty [-d fichier_défaut] [-a] [-h] [-r délai] [-t timeout] [-w waitfor] ligne [vitesse [type [lined]]]/etc/getty -c fichier_gettydefs
DESCRIPTION
Getty est le deuxième des trois programmes (init(1m), getty(1m), et login(1m)), utilisés par le système pour permettre aux utilisateurs de se connecter. Getty est appelé par init(1m) pour :- 1.
- Ouvrir les lignes tty et les configurer.
- 2.
- Afficher l'invite de connexion, et saisir le nom d'utilisateur.
- 3.
- Lancer un processus de connexion (login) pour l'utilisateur. La procédure précise suivie par getty est la suivante : En premier lieu, getty examine sa ligne de commande. Si aucune erreur n'est détectée, getty lit le fichier par défaut, normalement /etc/conf.getty, pour déterminer certaines valeurs de démarrage (/etc/conf.getty s'il est compilé avec l'option FSSTND). Les valeurs données dans le fichier par défaut (qui peut être changé par l'argument optionnel -d fichier_défauts) l'emportent sur celles de la ligne de commande. Getty ouvre alors la ligne en lecture/écriture et désactive le tampon stdio. Si une initialisation a été spécifiée, elle est exécutée (voir INITIALISATION DE LA LIGNE)
Après l'initialisation, la ligne est fermée puis réouverte. Cette fois, par contre, la ligne est ouverte en mode bloc, de sorte que le périphérique ne reste pas occupé. La détection d'une porteuse (carrier) permettra d'ouvrir la ligne.
Ensuite, getty affiche la bannière de connexion, habituellement /etc/issue) et l'invite de connexion (login) getty lit le nom d'utilisateur et appelle login(1m) avec ce nom comme argument. Pendant qu'il lit le nom, getty tente d'adapter le système à la vitesse du terminal utilisé, et configure aussi certains paramètres du terminal (voir termio(7)) pour se conformer à la procédure de connexion de l'utilisateur.
Le périphérique tty utilisé par getty est déterminé par l'argument ligne. Getty utilise la chaîne /dev/line comme nom du périphérique qu'il va utiliser. À moins que getty soit invoqué avec le drapeau -h (ou que HANGUP=NO soit spécifié dans le fichier par défaut), il forcera à raccrocher la ligne, en mettant sa vitesse à zéro. -r délai sur la ligne de commande (ou WAITCHAR=YES et DELAY=délai dans le fichier par défaut) forcera getty à attendre un (seul) caractère sur la ligne, puis à attendre délai secondes avant de continuer. Si vous ne désirez aucun délai, utilisez -r0. -w attendue sur la ligne de commande (ou WAITFOR=attendue dans le fichier par défaut) forcera getty à attendre la chaîne attendue sur la ligne avant de continuer. -t timeout sur la ligne de commande (ou TIMEOUT=timeout dans le fichier par défaut) forcera getty à terminer si aucun nom d'utilisateur n'est accepté pendant les timeout secondes suivant l'affichage de l'invite de connexion.
L'argument vitesse est une étiquette qui correspond à une entrée dans le fichier /etc/gettydefs (voir gettydefs(5)). Cette entrée définit à getty la vitesse initiale (en bauds) et la configuration tty, l'invite de connexion à utiliser, la vitesse finale, et la configuration tty, et un pointeur sur une autre entrée à essayer si jamais l'utilisateur signale que la vitesse n'est pas correcte. Ça se fait en envoyant un caractère <break> (en réalité, une séquence de caractères). Sous certaines conditions, un retour-chariot remplit le même rôle. C'est habituellement le cas quand getty est configuré avec une vitesse plus élevée que le terminal ou le modem. Getty parcourt le fichier gettydefs séquentiellement, en cherchant une entrée correspondant à la vitesse. Si aucune vitesse n'est donnée, ou si aucune entrée correspondante n'est trouvée, la première entrée de /etc/gettydefs est utilisée par défaut. Dans le cas où le fichier gettydefs n'est pas accessible, une entrée par défaut spécifiée à la compilation est utilisée.
L'argument type est une chaîne qui donne le nom du type de terminal relié à la ligne. Le type devrait être un nom de terminal valide, apparaissant dans la base de données termcap(7). Getty utilise cette valeur pour déterminer comment effacer l'écran. Il recopie aussi le contenu de cette valeur dans la variable d'environnement TERM.
L'argument lined est une chaîne décrivant la discipline de ligne à utiliser sur la ligne. La valeur par défaut est LDISC0.
Comme signalé plus haut, getty affiche l'invite de connexion puis lit le nom d'utilisateur. Si un caractère nul est reçu, il est pris comme venant de l'appui sur la touche <break> (ou sur Entrée / Retour-chariot) par l'utilisateur, pour indiquer que la vitesse est mauvaise. Cela force getty à passer à la vitesse suivante de la série (définie dans /etc/gettydefs).
Le nom d'utilisateur est terminé par un caractère saut de ligne (LF) ou retour chariot (CR). Si c'est un retour chariot, le système est configuré pour transformer ceux-ci en sauts de ligne (voir ioctl(2)).
Le nom d'utilisateur est vérifié. S'il ne contient que des majuscules, le système est configuré pour transformer toutes les (futures) majuscules en minuscules.
Une option de vérification est fournie pour tester le fichier gettydefs. Quand getty est invoqué avec l'option -c gettydefs, il examine le fichier appelé gettydefs et affiche (sur la sortie standard) les valeurs qu'il lit. Si des erreurs d'analyse surviennent (dues à des erreurs dans la syntaxe du fichier gettydefs), elles sont signalées.
FICHIER PAR DÉFAUT
Au démarrage, getty cherche le fichier /etc/conf.getty.ligne, (ou, s'il ne le trouve pas, /etc/conf.getty), et, s'il le trouve, lit le contenu des lignes de la formeNOM=valeur
Cela permet d'avoir certaines fonctionnalités de getty configurables au démarrage, sans recompilation. Les chaînes NOM reconnues, et leurs valeurs correspondantes, sont les suivantes :
- SYSTEM=nom
-
Positionne le nom de noeud (affiché par
@S
-- voir SUBSTITUTIONS DE L'INVITE) à
nom.
La valeur par défaut est la valeur
nom_de_noeud
retournée par la fonction
uname(3).
- VERSION=chaîne
-
Positionne la valeur affichée par le paramètre
@V
(voir SUBSTITUTIONS DE L'INVITE) à
chaîne.
Si
chaîne
commence par un caractère '/', elle est prise comme le chemin complet
d'un fichier, et
@V
représente le contenu de ce fichier. Par défaut c'est
/proc/version.
- LOGIN=nom
-
Positionne le nom du programme de connexion (login) à
nom.
Par défaut c'est
/bin/login
(voir
login(1m)).
S'il est utilisé,
nom
doit être le chemin complet du programme que
getty
doit appeler au lieu de
/bin/login.
Notez que ce programme est appelé, comme
/bin/login,
avec le nom d'utilisateur pour seul argument.
- INIT=chaîne
-
Si elle est définie,
chaîne
est une séquence attendue/envoyée qui est utilisée pour initialiser la
ligne avant que
getty
ne tente de l'utiliser. Cette chaîne a la même forme que celles
utilisées dans le fichier
L.sys
d'
uucp(1).
Pour plus de détails, voir INITIALISATION DE LIGNE. Par défaut, aucune
initialisation n'est faite.
- ISSUE=chaîne
-
Au lancement,
getty
affiche par défaut, comme bannière de connexion, le contenu du fichier
/etc/issue.
Si ISSUE est défini comme
chaîne,
cette chaîne est affichée en remplacement. Si
chaîne
débute par un '/', chaîne est considérée comme le chemin complet du
fichier à utiliser à la place de
/etc/issue.
- CLEAR=valeur
-
Si
valeur
est
NO,
getty
n'essaiera pas d'effacer l'écran avant d'afficher la bannière et
l'invite de connexion. Par défaut, il efface l'écran.
- HANGUP=valeur
-
Si
valeur
est
NO,
getty
NE raccrochera PAS la ligne pendant son lancement.
Analogue à l'argument
-h
sur la ligne de commande.
- WAITCHAR=valeur
-
Si
valeur
est
YES,
getty
attendra un simple caractère sur la ligne avant de continuer. C'est
utile pour les connexions par modem, avec des modems qui forcent le
signal CD (=porteuse détectée) systématiquement, pour empêcher getty
de négocier indéfiniment avec le modem.
- DELAY=secondes
-
Utilisé en conjonction avec
WAITCHAR,
cela ajoute un délai de
secondes
après l'acceptation du caractère, avant d'autoriser
getty
à continuer. L'utilisation des deux paramètres
WAITCHAR
et
DELAY
ont le même effet que
-rdélai
sur la ligne de commande.
Si
WAITCHAR
est donné sans
DELAY,
le résultat est le même que de mettre
-r0
sur la ligne de commande.
Par défaut, getty n'attend pas de caractère.
- TIMEOUT=nombre
-
Comme avec l'argument de ligne de commande
-t
timeout,
force
getty
à terminer si aucun nom d'utilisateur n'est accepté avant que
nombre
secondes se soient écoulées à partir de l'affichage de l'invite de
connexion. Par défaut, il attend indéfiniment.
- CONNECT=chaîne
-
Si elle est définie,
chaîne
est une séquence attendue/envoyée (comme pour INIT) pour guider
getty
dans l'établissement d'une connexion.
chaîne
peut être définie à
DEFAULT,
ce qui substituera la chaîne prédéfinie :
CONNECT\s\A\r\n
L'échappement \A marque la place où les chiffres donnant la vitesse seront affichés. Voir CONNEXION ET CONFIGURATION AUTOMATIQUE DE LA VITESSE pour plus de détails. Par défaut il n'y a pas de séquence de discussion (chat).
- WAITFOR=chaîne
-
Ce paramètre est similaire à WAITCHAR, mais il définit une chaîne de
caractères attendue.
Getty
attendra la réception de
chaîne
avant d'afficher l'invite de connexion.
Il vaut mieux utiliser ce paramètre en même temps que CONNECT, comme
dans l'exemple suivant :
WAITFOR=RING CONNECT="" ATA\r CONNECT\s\A
Cela va forcer getty à attendre la chaîne RING, puis n'attendre rien, envoyer ATA suivi d'un retour-chariot, puis attendre une chaîne de type CONNECT 2400, auquel cas, getty se configurera à 2400 bauds. Par défaut, getty n'attend pas de chaîne de caractères.
- ALTLOCK=ligne
-
Uugetty
utilise ce paramètre pour verrouiller un deuxième périphérique, en
plus de celui auquel il est attaché. C'est prévu pour les systèmes qui
utilisent deux noms de périphérique différents pour le même port
série, par exemple /dev/tty1A et /dev/tty1a, l'un utilisant le
contrôle modem, l'autre pas. Voir la section sur UUGETTY pour plus de
détails.
Par défaut, il n'y a pas de deuxième fichier de verrouillage.
- ALTLINE=ligne
-
Getty
utilise ce paramètre pour spécifier un périphérique différent pour
l'initialisation du modem. Si l'option WAITFOR est utilisée, WAITFOR
sera exécuté aussi sur cette ligne. C'est nécessaire pour les systèmes
qui exercent le verrouillage entre deux lignes.
- RINGBACK=valeur
-
Si
valeur
vaut
YES ,
la procédure de rappel est configurée. Elle est utilisée en
conjonction avec
WAITFOR
et
CONNECT
pour négocier les appels entrants. L'action par défaut est de
connecter seulement si la ligne sonne de une à trois fois, est
raccrochée puis est rappelée dans les 60 secondes suivant le premier
appel.
MINRBTIME
et
MAXRBTIME
spécifient les durée minimale et maximale séparant les deux appels.
INTERRING
spécifie la durée maximale entre deux sonneries du même appel.
MINRINGS
et
MAXRINGS
spécifient les nombres minimum et maximum de sonneries pour le premier
appel.
- SCHED=intervalle1 intervalle2 intervalle3 ...
-
Getty
utilise cette ligne pour programmer les horaires de connexion
autorisés. Chaque intervalle est de la forme JdS:HR:MIN-JdS:HR:MIN.
JdS est le jour de la semaine (0 = Dimanche, 1 = Lundi, ... 6 =
Samedi), HR:MIN est l'horaire (heures, minutes).
Si l'heure courante est dans l'un de ces intervalles, la séquence INIT
(s'il y en a une) est envoyée et
getty
continue de tourner jusqu'à l'heure de fin. Sinon, la séquence OFF est
envoyée et getty "dort" jusqu'à la prochaine heure de démarrage.
- OFF=chaîne
-
Cette ligne est identique à la ligne INIT, sauf qu'elle est envoyée
uniquement quand la ligne est coupée (OFF) par le programmateur SCHED.
- FIDO=chaîne
-
Cette ligne spécifie le chemin du mailer FidoNet (habituellement
ifcico). Non définie par défaut. En installant un mailer FidoNet, vous
devriez aussi positionner EMSI à yes. Quand un appel entrant
FidoNet est reçu, la chaîne tsync ou yoohoo est passée au
mailer FidoNet comme unique option de ligne de commande si deux
séquences TSYNC ou YOOHOO sont reçues.
Si EMSI est positionnée à yes, la chaîne EMSI entière
(commençant au premier astérisque, et finissant au retour chariot
final -exclu-) est passée comme unique option de ligne de commande.
- EMSI=valeur
-
Si valeur=yes, intercepte les séquences FidoNet EMSI en entrée.
Le nom du fichier de configuration par défaut peut être changé en spécifiant -d fichier_défaut sur la ligne de commande. Si fichier_défaut commence par un slash, c'est considéré comme le chemin complet du fichier à utiliser. Sinon, c'est supposé être un fichier régulier, et getty utilise le chemin /etc/conf.defaults_file ou /etc/conf .defaults_file s'il est compilé avec la directive de respect de FSSTND (FileSystem STaNDard).
SUBSTITUTIONS D'INVITE
Quand getty affiche la bannière de connexion (habituellement /etc/issue), ou l'invite de connexion, il reconnaît plusieurs caractères d'échappement. Quand l'un de ces caractères est trouvé, sa valeur est substitué dans la sortie produite par getty. Les caractères d'échappement reconnus sont :- \\
- Backslash (\).
- \b
- Effacement-arrière (Backspace) (^H).
- \c
- Placé à la fin d'une chaîne, empêche le passage à la ligne suivante après la chaîne.
- \f
- Saut de page (Formfeed) (^L).
- \n
- Saut de ligne (^J).
- \r
- Retour Chariot (^M).
- \s
- Une espace simple (' ').
- \t
- Tabulation horizontale (^I).
- \nnn
-
Affiche le caractère ASCII dont la valeur décimale est
nnn.
Si
nnn
commence par 0, la valeur est lue en octal. Si elle commence par 0x,
elle est lue en hexadécimal.
De plus, un simple backslash à la fin d'une ligne ignore le saut de ligne adjacent, permettant la continuation des lignes.
Certains paramètres @car sont également reconnus. Ces paramètres, et les valeurs qui leur sont substituées, sont :
- @B
- Le débit courant, en bauds (évalué au moment où @B est vu).
- @D
- La date courante, format MM/JJ/AA.
- @L
- La ligne à laquelle getty est attaché.
- @S
- Le nom de noeud système.
- @T
- L'heure courante, format HH:MM:SS (24 heures) .
- @U
- Le nombre d'utilisateurs connectés. C'est le nombre d'entrées dans le fichier /etc/utmp qui ont un champ ut_name non-nul.
- @V
-
La valeur de
VERSION,
telle que donnée dans le fichier de configuration par défaut.
Pour afficher un simple caractère '@', utilisez '\@' ou
INITIALISATION DE LA LIGNE
L'un des gros avantages de getty (selon l'auteur, du moins) est sa capacité à initialiser sa ligne avant de s'en servir. C'est certainement beaucoup plus utile avec des lignes modem, pas des terminaux, même si l'initialisation de terminaux n'est pas complètement hors-sujet.L'initialisation de la ligne est effectuée juste après son ouverture, et avant la gestion des options WAITCHAR et WAITFOR. L'initialisation est effectuée en plaçant une ligne
INIT=chaîne
dans le fichier de configuration par défaut. Chaîne est une série d'un ou plusieurs champs de la forme
attendu [ envoyé [ attendu [ envoyé ] ] ... ]
Cela ressemble aux séquences attendues/envoyées utilisées dans le fichier UUCP L.sys, avec les exceptions suivantes : AUCUN retour chariot n'est ajouté automatiquement aux séquences envoyées. Si vous voulez envoyer un Retour Chariot, il faut le montrer explicitement avec '\r'.
Getty supporte des sous-champs dans le champ 'attendu', comme UUCO, sous la forme
attendu[-envoyé-attendu]...
Tous les caractères d'échappement (ceux commençant par '\'
listés dans la section SUBSTITUTIONS D'INVITE sont valides dans les
champs attendus et envoyés. De plus, les caractères d'échappement
suivants sont reconnus :
- \p
- insère une pause d'une seconde.
- \d
- insère une pause de deux secondes.
- \K
- envoie un Arrêt (Break) de 0,25 s (interruption de porteuse).
- \Tnnn
-
Passe le timeout par défaut (habituellement 30 s) à la valeur indiquée
par la valeur
nnn.
La valeur
nnn
peut être en décimal, octal ou hexadécimal ; voir l'usage de
\nnn dans SUBSTITIONS D'INVITE.
Notez que pour ces caractères d'échappement supplémentaires, aucun
caractère réel n'est envoyé.
CONNEXION ET RÉGLAGE AUTOMATIQUE DU DÉBIT
Getty entreprend une séquence de "discussion" (chat) pour établir une connexion propre. Le meilleur usage de cette caractéristique est de regarder le message CONNECT envoyé par le modem et de régler le débit de ligne à la valeur donnée dans ce message (par exemple CONNECT 2400).
La [syntaxe ? : NdT] du script de connexion chat est exactement la
même que celle du script INIT (voir INITIALISATION DE LIGNE), avec en
plus :
- \A
-
Marque la place où le débit (en bauds) apparaîtra. Cette marque
recouvrira tous les chiffres 0-9 trouvés à cet endroit du script,
passera le débit à cette valeur si c'est possible.
Pour cela, le réglage automatique du débit (autobauding) est
"mis en route" en plaçant la marque
\A
dans le script chat. Par exemple, la définition :
CONNECT=CONNECT\s\A
reconnaîtra la chaîne CONNECT 1200 et forcera getty à passer son débit à 1200 bauds, en 3 étapes :
- 1.
- Après avoir reconnu la valeur 1200, getty essaiera de trouver une entrée étiquetée 1200 dans le fichier gettydefs. Si une entrée correspondante est trouvée, les valeurs indiquées sont utilisées. Si aucune entrée ne correspond, alors
- 2.
- Les valeurs gettydefs courantes sont modifiées pour utiliser le débit reconnu (par exemple 1200). Malgré tout, si la valeur reconnue est invalide, alors
- 3.
-
Getty
envoie (log) un message d'avertissement et reprend une exécution
normale. Cela permet à la pratique de la bascule entre des entrées
liées du fichier gettydefs de fonctionner normalement [même si les
premiers débits ne sont pas acceptés, NdT].
UUGETTY
Uugetty a un comportement identique à getty, excepté que uugetty est prévu pour créer et utiliser les fichiers de verrou utilisés par la famille UUCP (uucp(1), cu(1) et autres). Cela empêche plusieurs processus d'utiliser la même ligne tty.
Quand uugetty démarre, s'il voit un fichier de verrou sur la ligne qu'il avait l'intention d'utiliser, il utilise le PID du fichier verrou pour vérifier si un processus actif tient le verrou. Si ce n'est pas le cas, uugetty supprime le fichier verrou et continue. Si un processus valide est trouvé, uugetty dort jusqu'à ce que le processus déverrouille la ligne, puis il se termine, forçant init(1m) à relancer (spawn) un nouvel uugetty. Une fois qu'il n'y a plus de processus en conflit, uugetty récupère la ligne en créant son propre fichier de verrou avant d'afficher l'invite de connexion.
Uugetty ne verrouille normalement que la ligne qu'il utilise. Sur les systèmes comportant deux noms de périphérique correspondant au même port (par exemple, quand un périphérique utilise le contrôle modem, et pas l'autre), placez une ligne de la forme
ALTLOCK=ligne
ligne est le fichier par défaut. Par exemple, si uugetty est sur /dev/tty1a, et vous voulez qu'il verrouille aussi /dev/tty1A, utilisez la ligne ALTLOCK=tty1A dans le fichier de configuration par défaut.
Pendant qu'il attend une porteuse, Uugetty vérifie les fichiers de verrou toutes les 30 secondes. Si des verrous sont trouvés, uugetty se termine et init relance un autre getty. Cela permet au modem d'être réinitialisé après qu'un autre processus l'a utilisé.
FICHIERS
- /etc/conf.getty[.ligne]
- Contient la configuration de démarrage. Noter que uugetty utilise /etc/conf.uugetty[.ligne].
- /etc/gettydefs
- Contient les débits et paramètres tty à utiliser.
- /etc/issue
- La bannière de connexion par défaut.
- /bin/login
-
Le programme de connexion appelé par défaut une fois qu'un nom
d'utilisateur est saisi.
VOIR AUSSI
init(1m), login(1m), uucp(1), ioctl(2), uname(3), gettydefs(5), utmp(5), termio(7), mgetty(8) [Ndt : plus compact, aussi efficace]AUTEURS
Getty_ps dans sa forme courante : Kris Gleason <gleasokr@boulder.colorado.edu>
Le getty_ps d'origine : Paul Sutcliffe, Jr. <paul@devon.lns.pa.us> UUCP: ...!rutgers!devon!paul
Routines de réglage automatique du débit adaptées du code soumis par Mark Keating <...!utzoo!censor!markk>
TRADUCTION
Guillaume Allègre, <Guillaume.Allegre@mail.dotcom.fr>, avril 1999.
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- FICHIER PAR DÉFAUT
- SUBSTITUTIONS D'INVITE
- INITIALISATION DE LA LIGNE
- CONNEXION ET RÉGLAGE AUTOMATIQUE DU DÉBIT
- UUGETTY
- FICHIERS
- VOIR AUSSI
- AUTEURS
- TRADUCTION
Time: 18:55:03 GMT, December 19, 2004