Size: 6804
Comment: Continuation of the French translation. Link to Gentoo wiki is brocken.
|
← Revision 3 as of 2017-04-23 01:05:57 ⇥
Size: 6773
Comment: use Debian manpages
|
Deletions are marked like this. | Additions are marked like this. |
Line 11: | Line 11: |
Le motd actuel est généré et affiché par pam_motd, voir la [[https://linux.die.net/man/8/pam_motd|page du manuel]]. | Le motd actuel est généré et affiché par pam_motd, voir la [[DebianMan:8/pam_motd|page du manuel]]. |
Line 146: | Line 146: |
* (en) [[http://linux.die.net/man/5/motd|La page de manuel motd la plus simple que je puisse trouver]] | * (en) [[DebianMan:5/motd|La page de manuel motd la plus simple que je puisse trouver]] |
Traduction(s): English - Français - Italiano
Wheezy et plus récent
Actuellement /etc/motd est modifiable par l'utilisateur et il est statique dans Wheezy. Le fichier ne sera pas écrasé au redémarrage.
Le motd actuel est généré et affiché par pam_motd, voir la page du manuel.
/etc/motd dans Debian Squeeze et avant
Debian a une manière particulière de manipuler /etc/motd. Le motd est mis à jour à chaque redémarrage, dans le script de démarrage (/etc/init.d/bootmisc.sh dans Lenny et avant, /etc/init.d/bootlogs dans Squeeze et après), qui déroule essentiellement les éléments suivants:
uname -snrvm > /var/run/motd [ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd
Depuis /etc/motd est un lien symbolique /var/run/motd dans Debian, cela fonctionne.
Comment mettre à jour votre /etc/motd
Depuis /etc/motd est généralement écrasé à chaque redémarrage, vous avez besoin de mettre à jour à la place /etc/motd.tail à chaque démarrage (!!) ou sinon éditez /etc/motd.tail ou exécuter les commandes ci-dessus. Il y a un rapport de bogue (437176) de fournir une commande plus facile pour vous permettre de mettre à jour seulement /etc/motd.tail.
Comment le script met à jour de votre /etc/motd
Une petite chose moins connue à propos de /etc/motd dans Debian et Ubuntu est que pam va effectivement mettre à jour votre /etc/motd basée simplement sur les scripts dans /etc/update-motd.d. Donc, pour répliquer les scripts ci-dessus, vous pourriez faire:
mkdir /etc/update-motd.d cat > /etc/update-motd.d/10uname <<EOF #! /bin/sh uname -snrvm EOF cat > /etc/update-motd.d/20tail <<EOF #! /bin/sh [ ! -f /etc/motd.tail ] && exit 0 cat /etc/motd.tail EOF chmod a+x /etc/update-motd.d/*
Ensuite, vous pouvez ajouter d'autres scripts à votre répertoire /etc/update-motd.d pour ajouter des choses à votre /etc/motd. Voir la page du manuel pour plus d'informations.
Notez que cette technique utilise un patch qui est livré uniquement avec Debian et Ubuntu et non pris en compte dans PAM en amont. De plus, ce code a eu des problèmes de sécurité dans le passé (CVE-2010-0832, this bug).
Comment éviter à votre /etc/motd d'être écrasé
rm /etc/motd cat > /etc/motd <<EOF Ceci est mon message du jour! EOF
De cette façon, /etc/motd n'est pas un lien symbolique vers une mise à jour plus et restera donc toujours le même. L'inconvénient de ceci est que vous ne verrez pas la dernière version du noyau dans le motd.
Vieille école "ne touchez pas mon motd" approche
Comme ci-dessus, cette approche permet également de d'afficher l'information dynamique...
cat > /etc/profile.d/uname <<EOF #!/bin/sh uname -snrvm EOF rm /etc/motd cat > /etc/motd <<EOF Problèmes connus ============ * le kerfuffle est connu pour ne pas redémarrer correctement sur le redémarrage, pour redémarrer utiliser la commande service kerkuffle restart
De quoi dépend /etc/motd?
Voici une liste des paquets qui font ce travail:
base-files: /usr/share/base-files/motd base-files: /usr/share/base-files/motd.md5sums manpages: /usr/share/man/man5/motd.5.gz manpages: /usr/share/man/man5/motd.tail.5.gz libpam-modules: /lib/x86_64-linux-gnu/security/pam_motd.so initscripts: /etc/init.d/bootlogs
base-files se charge essentiellement d'installer le motd au démarrage mais ne le remplacera pas lors de la mise à niveau (voir /usr/share/doc/base-files/README)
manpages explains how motd and motd.tail work
libpam-modules est un module pam_motd qui affiche le fichier motd. Il a aussi un patch (dans squeeze et plus récent, provenant d'Ubuntu) qui exécute les scripts présents dans /etc/update-motd.d pour mettre à jour le motd lors de la connexion.
Ce que les autres distributions font
Ubuntu
Depuis Ubuntu Intrepid Ibex (2008.10), Ubuntu a un répertoire /etc/update-motd.d/, à partir duquel les scripts sont exécutés pour construire le fichier /etc/motd. Cela est maintenant dans le module pam_motd, qui met à jour le fichier /var/run/motd, en utilisant ce code C :
if (do_update && (stat("/etc/update-motd.d", &st) == 0) && S_ISDIR(st.st_mode)) { mode_t old_mask = umask(0022); if (!system("/usr/bin/env -i PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ru n-parts --lsbsysinit /etc/update-motd.d > /var/run/motd.new")) rename("/var/run/motd.new", "/var/run/motd"); umask(old_mask); }
Pendant une courte période, cela a été fait par le paquet update-motd toutes les 10 minutes.
Par défaut, Ubuntu est livré avec un ensemble de scripts qui ajoutent le nombre de paquets à mettre à jour (par exemple).
Gentoo
Gentoo n'affiche pas le fichier motd par défaut, mais cela peut être activé dans login.defs, voir cette page wiki.
Arch, CentOS, et autres
Selon cette page wiki, Arch ne semble pas faire autre chose que d'afficher le fichier /etc/motd au démarrage.
FreeBSD
Dans FreeBSD, le fichier motd est également généré un script de boot, qui préservera les modifications en ne modifiant que la ligne qui correspond (lâchement) au uname qui est mis à jour lors des redémarrages. Les lignes magiques :
T=`mktemp -t motd` uname -v | sed -e 's,^\([^#]*\) #\(.* [1-2][0-9][0-9][0-9]\).*/\([^\]*\) $,\1 (\3) #\2,' > ${T} awk '{if (NR == 1) {if ($1 == "FreeBSD") {next} else {print "\n"$0}} else {print}}' < /etc/motd >> ${T}
Références
(en) Un commentaire sur la façon dont Ubuntu et Debian écrasent vos changements
(en) La page de manuel motd la plus simple que je puisse trouver
(fr) Wikipedia