| getty | |||
Nomgetty - Configures le mode terminal, la vitesse et la discipline de ligne.Synopsis/etc/getty [-d fichier_defaut] [-a] [-h] [-r délai] [-t timeout] [-w waitfor] ligne [vitesse [type [lined]]]/etc/getty -c fichier_gettydefs DescriptionGetty 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 :
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_defauts ) 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 flag -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. Ca 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 -cgettydefs, il scanne le fichier appelé gettydefs et affiche (sur la sortie standard) les valeurs qu'il lit. Si des erreurs d'analyse surviennent (dûes à des erreurs dans la syntaxe du fichier gettydefs), elles sont signalées.
Fichier Par DefautAu 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 contenudes lignes de la forme NOM=valeur Cela permet d'avoir certaines caractéristiques de getty configurables au démarrage, sans recompilation. Les chaînes NOM reconnues, et leurs valeurs correspondantes, sont les suivantes :
Le nom du fichier de configuration par défaut peut être changé en spécifiant -d fichier_defaut sur la ligne de commande. Si fichier_defaut 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'inviteQuand 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 :
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 :
Pour afficher un simple caractère '@' character, utilisez '\@' ou
Initialisation De La LigneL'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 effecué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 plusieur 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 :
Notez que pour ces caractères d'échappement supplémentaires, aucun caractère réel n'est envoyé.
Connexion Et Reglage Automatique Du DebitGetty 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
:
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 :
UugettyUugetty 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
Voir Aussiinit(1m) , login(1m) , uucp(1) , ioctl(2) , uname(3) , gettydefs(5) , utmp(5) , termio(7) , mgetty(8) [Ndt : plus compact, aussi efficace]
AuteursGetty_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> TraductionGuillaume Allègre, <Guillaume.Allegre@mail.dotcom.fr>, avril 1999. |