Следующая команда в 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"