Avoir un prompt de couleur différente pour root sur Ubuntu
Le prompt d'un terminal se définit par la variable PS1. En règle générale, on définit cette variable dans le fichier .bashrc du répertoire personnel (dans mon cas, /home/mzwyssig/.bashrc).
Sur Ubuntu, ce fichier est déjà bien rempli et il suffit de décommenter la ligne 39 force_color_prompt=yes
et de recharger le fichier (ou de relancer un terminal) pour que le terminal soit en couleur. On aura quelqiue chose du genre :
On reconnait les couleurs 01;32m (le vert gras) et 01;34m (le bleu gras). Le 01 définit le gras, le 32 ou le 34 la couleur. Le m final active la définition de style.
Mais comment faire pour que quand on se connecte en root sur ubuntu pour changer cette couleur verte (01;32m) en rouge (01;31m) ?
Sur Ubuntu, l'utilisateur root n'a pas de mot de passe, il ne peut donc pas se connecter si on lui en donne pas. La commande su ne fonctionnera donc pas, et l'environnement de l'utilisateur root ne peut donc pas être changé. Pour se connecter en root tout de même, on utilisera "sudo -s
".
Ce qui veut dire qu'on peut pas simplement prendre le fichier .bashrc de l'utilisateur root (/root/.bashrc) car il ne va pas être chargé. Nous restons dans l'environnement de l'utilisateur courant.
La solution est d'éditer le fichier .bashrc de l'utilsateur "sudoer" (qui a le droit de faire sudo).
A la ligne 53, il suffit de remplacer
PS1='${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '
par
if [ `whoami` = root ]; then
PS1='${debian_chroot:+($debian_chroot)}\\[\\033[01;31m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\\[\\033[01;32m\\]\\u@\\h\\[\\033[00m\\]:\\[\\033[01;34m\\]\\w\\[\\033[00m\\]\\$ '
fi
Nous définissions la couleur rouge (01;31m) si le resultat de la commande `whoami` retourne 'root'.
Résultat après le rechargement du fichier (ou après avoir relancé le terminal)
Voici un article avec beaucoup d'informations sur les couleurs et sur la personnalisation du prompt.