Erstellt am 01.01.2011
Da man als Root Benutzer unter Linux sehr viel Schaden am System anrichten kann, ist es sinnvoll möglichst oft als normaler Benutzer zu arbeiten. Eine Root Shell sollte man nur dann verwenden, wenn es nicht anders geht. Schnell vergisst man aber, dass man gerade als Root arbeitet. Der so genannte Prompt, z.B. "root@host:Pfad#", weißt zwar auf die Root Shell hin, wird aber schnell übersehen. Da macht es Sinn die Root Shell zu Kennzeichnen, so dass man während dem Arbeiten ständig daran erinnert wird. In diesem Fall soll der Benutzer "root" mit roter Farbe im Prompt hervorgehoben werden.
Der Artikel bezieht sich auf Ubuntu 10.04, wurde aber auch schon unter Debian getestet. Bei Anderen Linux Distribution sollte das Vorgehen sehr Ähnlich sein.
Allgemein: Prompt Farbe ändern Das Aussehen des Prompts wird in der der Datei ".bashrc" festgelegt. Es ist eine versteckte Datei, die im Heimatverzeichnis jedes Benutzers liegt. Dort wird der Variablen PS1 ein String zugewiesen. Unter Ubuntu finden sich beispielsweise folgende Zeilen in der Datei:
[Plain] [Html]1 if [ "$color_prompt" = yes ]; then 2 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 3 else 4 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 5 fi
Interessant ist hier die vierte Zeile, dort wird normalerweise der Prompt definiert.
Möchte man den Benutzer farbig hervorheben, so kann man vor dem "\u" einen Farbcode setzen und danach die Farbe wieder zurücksetzen. Die Farbcodes sind:
[Plain] [Html]1 \[\033[0m\] #Zurücksetzen 2 \[\033[4m\] #Unterstreichen 3 \[\033[30m\] #Schriftfarbe schwarz 4 \[\033[31m\] #Schriftfarbe rot 5 \[\033[32m\] #Schriftfarbe grün 6 \[\033[33m\] #Schriftfarbe gelb 7 \[\033[34m\] #Schriftfarbe blau 8 \[\033[35m\] #Schriftfarbe magenta 9 \[\033[36m\] #Schriftfarbe cyan 10 \[\033[37m\] #Schriftfarbe weiß 11 \[\033[40m\] #Hintergrundfarbe schwarz 12 \[\033[41m\] #Hintergrundfarbe rot 13 \[\033[42m\] #Hintergrundfarbe grün 14 \[\033[43m\] #Hintergrundfarbe gelb 15 \[\033[44m\] #Hintergrundfarbe blau 16 \[\033[45m\] #Hintergrundfarbe magenta 17 \[\033[46m\] #Hintergrundfarbe cyan 18 \[\033[47m\] #Hintergrundfarbe weiß
Will man den Benutzernamen in einer Root Shell rot hervorheben, so kann man in der Datei /root/.bashrc oben erwähnte vierte Zeile durch diese ersetzen:
[Plain] [Html]1 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h:\w\$ '
Hervorhebung für Sudo Obige Lösung funktioniert nur, wenn man sich als root anmeldet oder das "su" Kommando verwendet. Ich verwende jedoch meistens das Kommando "sudo -s". Sudo ruft dabei nicht die .bashrc des Root-Benutzers auf, sondern die des Benutzers, der sudo verwendet. Deshalb habe ich zusätzlich meine eigene .bashrc so bearbeitet, dass der Benutzer farbig hervorgehoben wird, wenn es sich um Root handelt. Dazu ersetzt man die oben erwähnte vierte Zeile durch folgenden Code:
[Plain] [Html]1 if [ `id -u` -eq "0" ]; then 2 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h:\w\$ ' 3 else 4 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 5 fi
Jetzt wird auch bei der Verwendung von Sudo der Benutzer in einer Root Shell rot hervorgehoben.
Link Folgender Artikel beschreibt ganz gut wie man den Prompt unter Ubuntu anpassen kann: http://ubuntuforums.org/showthread.php?t=614743