Comment utiliser l’appel système en lecture pour prendre le mot de passe de manière interactive

Comment puis-je implémenter la ligne de commande suivante en utilisant les appels système dans golang?

read -s -p "Enter Password: " mypassword 

c’est-à-dire quelles options supplémentaires définir lors de la lecture du mot de passe pour éviter que l’entrée ne soit répercutée et forcer la saisie de manière interactive uniquement.

Merci.

Vous pouvez utiliser terminal.ReadPassword() partir du terminal du package.

 func ReadPassword(fd int) ([]byte, error) 

ReadPassword lit une ligne d’entrée depuis un terminal sans écho local. Ceci est couramment utilisé pour la saisie de mots de passe et d’autres données sensibles. La tranche renvoyée n’inclut pas le \ n.

Le terminal de paquetage fournit des fonctions de support pour gérer les terminaux, comme on en trouve couramment sur les systèmes UNIX.

Plus à ce sujet:

Vous pouvez utiliser la commande expect pour le mot de passe de manière interactive:

expect "Enter Password:" {

send -- "$PASSWORD_VALUE\r"

par exemple – en utilisant sftp utiliser le script ci-dessous

sh expect.sh

PASSWORD_VALUE="password"

spawn -noecho sftp username@ip

expect "Enter Password:" {

send -- "$PASSWORD_VALUE\r"

#