Page 1 sur 2

Coloration en rouge de l'utilisateur root désactivée ?

Posté : mer. 11 juil. 2018 00:03
par bertty
Bonjour,

Je viens d'effectuer l'upgrade de LM 18.3 à LM 19

Tout semble OK à part ce petit détail dans le terminal : quand je tape je me loggue bien en root mais la coloration de l'utilisateur disparaît, y compris d'ailleurs quand je fais un ou tout autre commande qui amène habituellement à une coloration.

Dois-je modifier qqch dans les propriétés du terminal ?

Bonne journée à tous.

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : mer. 11 juil. 2018 09:03
par arghlub
Salut,

Si tu veux retrouver une invite de commande colorée pour root, une solution (d'autres doivent exister, mais c'est la 1ère qui m'est venue à l'idée, je viens de l'essayer, ça marche) serait de modifier le fichier «.bashrc» de root.

Pour ce faire :
  1. tu passes en root :

    Code : Tout sélectionner

    sudo su
  2. tu te places dans le répertoire de root :
  3. par précaution, copie le fichier .bashrc pour en garder une copie en cas de bêtise :

    Code : Tout sélectionner

    cp .bashrc .bashrc-original
  4. on passe aux choses sérieuses en éditant le fichier .bashrc :

    Code : Tout sélectionner

    xed .bashrc
  5. dans ce fichier, décommente (enlève le # du début) la ligne 39 (ou aux alentours) :

    Code : Tout sélectionner

    force_color_prompt=yes
  6. modifie la variable d'environnement PS1 qui définit la mise en forme du prompt/invite de commandes.
    Dans la ligne contenant la variable PS1 (ligne 53), remplace le code de la couleur verte \[\033[01;32m\] par du rouge \[\033[01;31m\].
  7. Pour finir, enregistre le fichier et quitte «xed». Et pour tester, ferme et réouvre le terminal et passe en root.
Ce qui te donne un fichier .bashrc pour root du genre :

Code : Tout sélectionner

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoredups:ignorespace

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; 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)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi
Bien sûr, tu peux faire bien d'autres modifs de mise en forme et c'est à ton goût.
Pour les codes couleurs, vas voir par ici : https://memo-linux.com/comment-personna ... -terminal/

Si jamais tu fais des bêtises, tu pourras toujours revenir en arrière en remettant le fichier original qu'on a sauvegardé avec cette commande (il faut être root dans le répertoire de root évidemment) :

Code : Tout sélectionner

cp .bashrc-original .bashrc
Dernière chose : pour le «ls» coloré, il devrait l'être, cela se fait avec l'alias «alias ls='ls --color=auto'» dans le .bashrc.

Voili ;)

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : mer. 11 juil. 2018 17:43
par bertty
Merci beaucoup pour cette réponse extrêmement précise que je vais me presser d'appliquer 8-)

Un peu étonnant qu'ils aient viré par défaut la coloration quand même, non ?

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : mer. 11 juil. 2018 18:03
par arghlub
Effectivement j'ai vu ça dans LM19, mais bon.... on a toujours la main si on a pas peur d'un peu de cambouis :D

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : jeu. 12 juil. 2018 08:54
par bertty
Bonjour,

J'ai décommenté la ligne contenant force_color_prompt=yes (qui est la ligne 46 pour moi)

Pour la variable PS1 j'ai un doute car mon .bashrc ne semble pas tout à fait la même chose que le tien. Voilà mon .bashrc :

Code : Tout sélectionner

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm|xterm-color|*-256color) color_prompt=yes;;
esac

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
	# We have color support; assume it's compliant with Ecma-48
	# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
	# a case would tend to support setf rather than setaf.)
	color_prompt=yes
    else
	color_prompt=
    fi
fi

if [ "$color_prompt" = yes ]; then
    if [[ ${EUID} == 0 ]] ; then
        PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\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
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ '
fi
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a\]$PS1"
    ;;
*)
    ;;
esac

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
  if [ -f /usr/share/bash-completion/bash_completion ]; then
    . /usr/share/bash-completion/bash_completion
  elif [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
  fi
fi

if [ -x /usr/bin/mint-fortune ]; then
     /usr/bin/mint-fortune
fi
[ -r /home/bertrand/.byobu/prompt ] && . /home/bertrand/.byobu/prompt   #byobu-prompt#
En tous cas tel quel, pour le moment root n'est toujours pas coloré mais je dois sans doute modifier qqch pour PS1, j'ai essayé de remplacer 32m par 31m dans le if et rien pour le moment.

Ha oui et un truc supplémentaire : l'auto-complétion avec TAB ne semble plus fonctionner non plus (mais seulement en root) ? :(

Bonne journée !

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : jeu. 12 juil. 2018 09:19
par arghlub
Salut,

J'ai l'impression que tu as modifié le .bashrc contenu dans ton /home/bertrand et pas celui de /root :?

Le .bashrc dans /root que je t'ai fourni provient d'une LM19XFCE (installation récente, pas de upgrade de LM18→19) mais aucune raison que cela ne soit pas le même dans Cinnamon.

Verifie donc que c'est bien le fichier «/root/.bashrc» que tu as modifié et pas le fichier «/home/bertrand/.bashrc»
Car si je connais ton prénom c'est que c'est marqué en fin de ton fichier, ce qui ne devrait absolument pas être le cas si c'était le fichier de root !

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : jeu. 12 juil. 2018 10:55
par arghlub
Juste pour te montrer que chez moi cela marche parfaitement :
Image

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : jeu. 12 juil. 2018 11:17
par Lycaon
Salut Bertty,

Je pense qu'Arghlub a raison. Pour pouvoir te dire exactement quel fichier il convient de modifier, essaye d'aller dans la racine :

Code : Tout sélectionner

cd /
puis exécute :

Code : Tout sélectionner

sudo locate bashrc
et renvoie ici ce que ça te donnera. ;)

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : jeu. 12 juil. 2018 11:37
par arghlub
en plus des commandes de Lycaon, donne-nous le retour de :

Code : Tout sélectionner

sudo ls -a /root
;)

Re: Coloration en rouge de l'utilisateur root désactivée ?

Posté : jeu. 12 juil. 2018 13:50
par bertty
Ho le boulet :l
En effet j'ai oublié de me mettre dans le bashrc de root :?
Je corrige ça dès que je rentre :oops: