Français - AnglaisObjectif de cet atelier pratique :

  • comprendre l’importance de l’anglais pour un administrateur
  • afficher les messages système en anglais

La lingua franca du monde du libre

Actuellement, de nombreuses distributions Linux courantes et moins courantes sont à peu près intégralement traduites en français. Autrement dit, vous choisissez votre langue au moment de lancer l’installation et, à partir de là, la procédure s’effectue entièrement en français, comme nous avons pu le voir lors de l’installation de Rocky Linux.

Si le simple utilisateur d’un poste de travail sous Linux peut légitimement s’attendre à ce que son environnement graphique s’affiche entièrement dans sa propre langue, cela n’est pas tout à fait vrai pour l’administrateur du système, pour plusieurs raisons.

  • Les manuels en ligne ne sont que partiellement disponibles dans d’autres langues que l’anglais. Leur traduction dans toutes les langues est une entreprise d’une envergure pharaonique.
  • La lingua franca d’un grand nombre de projets du monde du libre (comme Rocky Linux) reste l’anglais. Il existe certes des projets localisés pour chaque pays, mais très souvent, le gros de la communication passe par les forums, les listes de diffusion et les canaux IRC anglophones. Dans le cas de Rocky Linux, les forums constituent le principal canal de communication du projet. Même s’il est théoriquement possible de survivre en tant qu’administrateur Linux sans parler un seul mot d’anglais, attendez-vous à quelques complications. Autant vouloir entamer une carrière au Vatican sans comprendre un mot de latin.
  • Sur un système configuré en français, certains messages système s’affichent dans un mélange de français et d’anglais assez folklorique, et il vaut mieux privilégier l’anglais.

Basculer vers l’anglais

Dans la configuration par défaut, notre système Rocky Linux est en français, étant donné que nous avons sélectionné Français/France lors de la définition des paramètres régionaux.

Connectez-vous en tant qu’utilisateur simple.

linuxbox login : microlinux
Password : ********

Vous vous retrouvez face à l’invite de commande.

[microlinux@linuxbox ~]$ _

La commande localectl status permet d’afficher les paramètres régionaux du système.

[microlinux@linuxbox ~]$ localectl status
System Locale: LANG=fr_FR.UTF-8
VC Keymap: ch-fr
X11 Layout: ch
X11 Variant: fr

La directive list-locales affiche la liste des localisations disponibles sur notre système.

[microlinux@linuxbox ~]$ localectl list-locales
C.utf8
aa_DJ
aa_DJ.iso88591
aa_DJ.utf8
aa_ER
aa_ER.utf8
aa_ER.utf8@saaho
aa_ER@saaho
aa_ET
aa_ET.utf8
...
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
...
fr_FR
fr_FR.iso88591
fr_FR.iso885915@euro
fr_FR.utf8
...
  • Utilisez la touche Espace pour avancer d’une page.
  • La touche Q permet de quitter la liste des localisations.

Pour basculer le système vers l’anglais, nous allons utiliser la directive set-locale comme ceci.

$ sudo localectl set-locale LANG=en_US.utf8

À partir de là, les messages du système s’affichent en anglais.

[microlinux@linuxbox ~]$ more beer
more: stat of beer failed: No such file or directory

SSH et les variables d’environnement

Si vous vous connectez à distance, vous pouvez vous retrouver confronté à un comportement pour le moins surprenant.

[kikinovak@dell-xps:~] $ ssh microlinux@10.0.0.180
microlinux@10.0.0.180's password: 
Last login: Wed Aug 17 08:37:34 2022 from 10.0.0.102
[microlinux@linuxbox ~]$ localectl status
   System Locale: LANG=en_US.utf8
       VC Keymap: ch-fr
      X11 Layout: ch
     X11 Variant: fr
[microlinux@linuxbox ~]$ echo $LANG
fr_FR.UTF-8

L’inconsistance manifeste des paramètres régionaux s’explique ici par le fait que la variable LANG est transmise depuis le client SSH, en l’occurrence ma station de travail OpenSUSE Tumbleweed qui utilise le français (fr_FR.UTF-8) par défaut.

Pour éviter ce genre de situation, j’ai le choix entre trois solutions.

  • Redéfinir la variable LANG avant la connexion.
  • Empêcher le client SSH d’envoyer les variables d’environnement.
  • Empêcher le serveur de recevoir les variables en question.

Redéfinir la variable LANG

Pour redéfinir ma variable LANG avant de me connecter à distance, il suffit que j’invoque la commande ssh comme ceci.

$ LANG=en_US.utf8 && ssh microlinux@10.0.0.180

InfoC’est la solution la plus simple, qui n’exige aucune compétence particulière. Les deux solutions ci-après s’adressent aux administrateurs Linux qui ont déjà un peu d’expérience.

Empêcher le client SSH d’envoyer les variables

Sur ma station de travail OpenSUSE Tumbleweed, le client SSH se configure par le biais du fichier /usr/etc/ssh/ssh_config. J’ouvre ce fichier et je repère les directives SendEnv :

# This enables sending locale enviroment variables LC_* LANG
SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
SendEnv LC_IDENTIFICATION LC_ALL

Je commente toutes ces directives, c’est-à-dire je les fais précéder d’un signe dièse # pour les rendre inopérantes :

# This enables sending locale enviroment variables LC_* LANG
# SendEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
# SendEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
# SendEnv LC_IDENTIFICATION LC_ALL

À partir de là les variables d’environnement ne sont plus transmises.

Empêcher le serveur de recevoir les variables

Sur le serveur Rocky Linux, le service SSH se configure par le biais du fichier /etc/ssh/sshd_config. Ouvrez ce fichier et repérez les directives AcceptEnv :

# Accept locale-related environment variables
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

Là encore, je commente toutes les directives, c’est-à-dire je les fais précéder d’un signe dièse # pour les rendre inopérantes :

# Accept locale-related environment variables
# AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
# AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
# AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
# AcceptEnv XMODIFIERS

Je prends en compte les modifications :

$ sudo systemctl reload sshd

Et le tour est joué.

 

Lire la suite : Naviguer en mode texte


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


1 commentaire

Jules · 12 septembre 2022 à 9 h 08 min

Il y a quelques petites évolutions sur RockyLinux 9, par exemple:
– la connexion distante en root n’est plus possible par défaut
– bien entendu cela eput aussi se modifier aussi dans le ssd_config, juste que le seul éditeur de texte présent après installation de RockyLinux 9 est… vi 😉

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *