在 OSX 上,以下命令将更改 Open Directory(Apple 的 LDAP)密码。$ 是提示符:
$ dscl -u diradmin -P 'password' /LDAPv3/127.0.0.1 passwd /Users/username newpassword
我希望将其变成某种交互式 shell 脚本(我们称之为“odpasswd”),该脚本首先提示管理员输入他们想要更改密码的帐户的用户名,然后输入密码,如下所示:
$ odpasswd
$ Username you'd like to change passwords for?
johnd
$ New Password?
secretpassword
$ Done! Password changed successfully for username 'johnd' to 'secretpassword'
我对 shell 脚本不太熟悉,不知道如何将其变成这样。
非常感谢您的帮助!谢谢!
答案1
您可以为 -P“$password”定义变量。另请参阅 bash 中的“read”函数。
$ dscl -u diradmin -P'密码'/LDAPv3/127.0.0.1 passwd /Users/用户名新密码
这是一个未经测试的脚本,但您可以弄清楚它。
#!/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"