0 votes

Modifier l'invite de commande du terminal pour l'utilisateur Root dans Sierra

Je peux changer l'invite de commande bash pour le terminal d'un utilisateur ordinaire sans problème. (Dans mon cas, j'ai modifié la variable $PS1 dans le fichier /etc/bashrc.) Cependant, ce changement ne modifie pas l'invite de commande lorsque l'on élève ses privilèges à Root en utilisant la commande sudo -s .

Quelqu'un sait-il où est stockée la préférence de l'invite de commande sur une machine MacOS Sierra (10.12.5) pour un utilisateur admin qui a élevé ses privilèges à Root à l'aide de la fonction sudo -s ?

J'ai essayé de modifier les fichiers suivants...

  • /var/Root/.bash_profile
  • /var/Root/.bash_rc
  • /var/Root/bash_rc
  • /var/Root/.profil
  • ~/.profil

J'ai également essayé d'utiliser la commande export PS1="Some prompt here# " qui modifie temporairement l'invite Root, mais qui ne reste pas en place lorsque la session est terminée et qu'une nouvelle session est lancée.

0 votes

S'agit-il d'une machine dont le compte Root est activé ?

0 votes

Non, le compte Root n'est pas activé. J'essaie de faire en sorte que l'invite change lorsque je fais un "sudo -s" depuis un utilisateur administrateur.

3voto

da4 Points 4796

Ajouter le SUDO_PS1 à votre variable d'environnement ~/.bash_profile y luego export la variable, comme :

export SUDO_PS1="\[\h:\w\] \u\\$ "

Notez cependant que cela ne changera que l'invite Root telle qu'elle apparaît après avoir élevé vos droits via sudo .

Une bonne liste de prompt les variables peuvent être trouvées ici.

0 votes

Ce qui précède fonctionne, mais seulement temporairement. Si je quitte le terminal puis le relance, les modifications ne sont pas enregistrées.

0 votes

Si vous saisissez simplement cette export dans un shell existant, alors oui, les changements ne seront pas persistants. Vous devez l'ajouter à votre ~/.bash_profile . Testé et confirmé sur 10.11.6.

0 votes

Je suis curieux de savoir pourquoi root est si spécial.

1voto

Tony Williams Points 11219

Je suppose que vous ne vous connectez pas à votre Mac en tant que root puisque l'activation de la connexion racine est une très mauvaise chose .

Donc vous utilisez la commande sudo -s pour ouvrir un shell Root à partir de votre propre login. Dans ces circonstances, le profil exécuté est le vôtre. La meilleure façon d'apporter des modifications, par exemple à l'invite, est d'utiliser une commande de type if dans votre profil, par exemple

# color prompt and make root red
if [ `id -u` = 0 ]
then
    PS1="\[\033[31m\]\h:\W \u\$\[\033[0m\] "
else
    PS1="\[\033[34m\]\h:\w \u\$\[\033[0m\] "
fi

Dans cet exemple, le PS1 du haut est pour Root et définit l'invite en rouge et le second PS1 est pour tout autre utilisateur, par exemple vous. Vous pouvez effectuer tous les autres changements d'environnement que vous souhaitez dans le fichier if également.

0 votes

Oui, vous avez raison. Je me connecte en tant qu'utilisateur admin et j'élève mes privilèges à Root en utilisant "sudo -s". Votre réponse ne change pas l'invite lorsque j'élève mes privilèges à Root. J'ai cependant voté en faveur de votre réponse, car j'aime beaucoup le changement de couleur de l'invite.

1voto

Michael Zhou Points 167

De la sudo manuel :

-s, --shell    Run the shell specified by the SHELL environment variable if it is set or the shell
               specified by the invoking user's password database entry.  If a command is specified, it
               is passed to the shell for execution via the shell's -c option.  If no command is
               specified, an interactive shell is executed.

Un interpréteur de commandes interactif lirait les données de l'utilisateur qui l'invoque. .bashrc . Donc, la solution de Tony Williams fonctionnerait si elle est dans votre .bashrc . Mais la solution de da4 devrait également fonctionner si elle est placée dans votre .bash_profile .

0 votes

Merci. La modification de ~/.bashrc a changé l'invite Root lors de l'utilisation de sudo -s.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X