Como fazer um script baseando-se na entrada do usuário para alterar uma senha

1

O seguinte comando no OSX mudará uma senha do Open Directory (LDAP da Apple). O $ é o prompt:

$ dscl -u diradmin -P 'password' /LDAPv3/127.0.0.1 passwd /Users/username newpassword

Eu adoraria transformar isso em um script de shell interativo de algum tipo (vamos chamá-lo de 'odpasswd') que primeiro solicita ao administrador o nome de usuário cuja conta deseja alterar as senhas, depois a senha, nesse sentido :

$ odpasswd
$ Username you'd like to change passwords for?
  johnd
$ New Password?
  secretpassword
$ Done! Password changed successfully for username 'johnd' to 'secretpassword'

Não sou especialista em scripts de shell para saber como transformar isso em algo assim.

Sua ajuda é sempre muito apreciada! Obrigado!

    
por Dan 11.10.2012 / 04:07

1 resposta

1

Você pode definir variáveis para o -P "$ password". Leia também sobre a função 'read' no bash.

$ dscl -u diradmin -P 'senha' /LDAPv3/127.0.0.1 passwd / Users / username newpassword

Este é um script não testado, mas você pode descobrir.

#!/bin/bash

read -p "For which user to change the password? " username
read -s "Enter the old password for $username " oldpassword
read -s "Enter the new password for $username " newpassword

dscl -u diradmin -P "$oldpassword" /LDAPv3/127.0.0.1 passwd /Users/"$username" "$newpassword"
    
por 11.10.2012 / 15:15