Назад | Перейти на главную страницу

Как заставить Bash Script принимать вводимые пользователем данные для изменения пароля

Следующая команда в OSX изменит пароль Open Directory (Apple LDAP). $ - это приглашение:

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

Я хотел бы превратить это в какой-то интерактивный сценарий оболочки (назовем его odpasswd), который сначала запрашивает у администратора имя пользователя, для учетной записи которого они хотят изменить пароли, а затем пароль, в следующих строках:

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

Я недостаточно разбираюсь в сценариях оболочки, чтобы знать, как из этого сделать что-то вроде этого.

Мы всегда ценим вашу помощь! Спасибо!

Вы можете определить переменные для -P "$ пароль". Также прочтите о функции чтения в bash.

$ dscl -u diradmin -P 'пароль' /LDAPv3/127.0.0.1 passwd / Users / имя пользователя newpassword

Это непроверенный сценарий, но в нем можно разобраться.

#!/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"