2 votes

Modifier l'invite sudo dans MacOS

J'essaie de modifier l'invite sudo par défaut utilisée dans macOS pour qu'elle corresponde à celle à laquelle je suis habitué dans linux. Je veux savoir si je suis censé mettre mon sudo et non un autre mot de passe.

J'ai essayé l'ENV SUDO_PROMPT variable prompt first

 set SUDO_PROMPT '[sudo] %p : '

 echo $SUDO_PROMPT
[sudo] %p :

 sudo -v
Password:
sudo: a password is required

Cela ne fonctionne pas.

A partir de la Documentation sudo

passprompt_override
The password prompt specified by passprompt will normally only be used if the 
password prompt provided by systems such as PAM matches the string “Password:”. 
If passprompt_override is set, passprompt will always be used. This flag is off 
by default.

Pourtant, lorsque j'ai essayé de l'ajouter au fichier sudoers, j'ai toujours obtenu une erreur. J'imagine que je ne comprends pas comment l'annulation des valeurs par défaut dans sudo est censée fonctionner. Il n'y a pas beaucoup de bons exemples de mise en place de drapeaux booléens en ligne que j'ai pu trouver.

sudo visudo /etc/sudoers
Password:
#
# Sample /etc/sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.

##
# Override built-in defaults
##
Defaults    env_reset
Defaults    env_keep += "BLOCKSIZE"
Defaults    env_keep += "COLORFGBG COLORTERM"
Defaults    env_keep += "__CF_USER_TEXT_ENCODING"
Defaults    env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
Defaults    env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
Defaults    env_keep += "LINES COLUMNS"
Defaults    env_keep += "LSCOLORS"
Defaults    env_keep += "SSH_AUTH_SOCK"
Defaults    env_keep += "TZ"
Defaults    env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
Defaults    env_keep += "EDITOR VISUAL"
Defaults    env_keep += "HOME MAIL"

Defaults    lecture_file = "/etc/sudo_lecture"

# Defaults  passprompt = '[sudo] password for %p: '

#Defautls   passprompt_override

2 votes

Essayer export SUDO_PROMPT='[sudo] %p : '

4voto

nohillside Points 82672

Si vous utilisez Bash ou Zsh, les variables doivent être définies à l'aide de la commande

export SUDO_PROMPT='[sudo] %p: '

Si vous utilisez Fish, utilisez set -x pour mettre la variable à la disposition des processus enfants

set -x SUDO_PROMPT '[sudo] %p: '

2 votes

@nelaaro L'utilisation de shells non-standard mérite d'être mentionnée dans la question :-)

1 votes

@nelaaro En tout cas, c'est décrit dans file:///opt/homebrew/Cellar/fish/3.5.1/share/doc/fish/cmds/set.html si vous avez installé via Homebrew (et dans la réponse maintenant aussi).

0voto

ledhed Points 41

Pour moi, la différence entre l'utilisation de fish [set][1] fonction

vim ~/.config/fish/config.fish
set -x SUDO_PROMPT '[sudo] %p : '

En effet, au lieu de simplement définir la variable, la fonction -x pour l'exportation est nécessaire. Cette méthode ne fonctionnera pas.

set SUDO_PROMPT '[sudo] %p : '

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