Root Benutzer in der Linux Kommandozeile hervorheben

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

Kommentare

Bis jetzt gibt es keine Kommentare.