7 votes

Comment fonctionne le symbole de la clé sudo ?

J'essaie d'écrire un script qui demande le mot de passe de l'utilisateur pour une certaine sudo -les commandes liées. Mon objectif est d'émuler la méthode par défaut utilisée par OS X pour obtenir le mot de passe de l'utilisateur, Password: suivi d'un symbole ressemblant à une clé, comme le montre la capture d'écran ci-dessous :

key symbol

J'ai essayé la réponse de Comment obtenir un mot de passe à partir d'un shell script sans faire d'écho ? sur Stack Overflow qui utilise read -s mais cela se traduit par Password: sans le symbole de la clé lorsqu'il est exécuté à partir d'un script. mais affiche le symbole lorsqu'il est exécuté à partir du terminal lui-même. Quel est ce symbole clé, et puis-je le trouver dans le menu Caractères ?

7voto

nohillside Points 82672

J'obtiens le symbole de la clé lorsque je lance read -s dans le terminal.

Comme cela semble fonctionner de la même manière pour les read -s en ce qui concerne sudo Je suppose qu'il s'agit d'une fonction du terminal (afficher un symbole de touche chaque fois qu'une entrée est demandée en mode silencieux/caché).

3voto

yoliho Points 340

La réponse la plus simple est d'écrire le script sans sudo

puis indiquer à l'utilisateur de l'exécuter avec sudo, par exemple sudo script

le script sera exécuté avec les privilèges de root

`cela présente l'avantage que l'utilisateur sait ce qui est demandé et où le mot de passe est utilisé, si dans votre script vous pouvez prendre une copie ou le laisser en mémoire

1voto

Elias Zamaria Points 988

Je pense que cela a quelque chose à voir avec le fait que l'option d'écho du terminal soit désactivée. J'ai essayé d'exécuter stty -echo; cat; stty echo dans mon terminal, puis de taper quelque chose, et le symbole de la touche s'est affiché. J'ai alors appuyé sur Ctrl + D et il a disparu.

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