I am trying to set a master password from the terminal (using a shell script). I see the passwd function and the master.passwd function, however I don't see any documentation on either of these to set the master password (AFAIK, these set the user passwords only).
I am pulling my information from these sources:
http://support.apple.com/kb/ph7032
What does this command do: sudo dscl . passwd /Users/administrator thePassword
https://developer.apple.com/library/mac/documentation/darwin/reference/manpages/man5/master.passwd.5.html
My question is:
Can you use the passwd or master.passwd commands to set the master password? If so, can you please provide an example for how to accomplish this?
Best Answer
First, a few things to note:
On the Mac the files
/etc/passwd
and/etc/master.passwd
are only consulted when the Mac is booted into single user mode.I'm not sure what you mean by "set the master password" for the Mac. Do you mean set the password for the account 'root'?
Usually you use the
passwd
command to change passwords from the command line (there is nomaster.passwd
command) but you can't use it from a script as it requires input.To change a password in a script you need to use the
dscl
command.Here is an example :
dscl . -passwd /Users/tonyw newpass
Note that the above would have to be run as root, which means your script would have to be run by root. Otherwise you have to add authentication to the dscl command thus:
dscl . -u Admin -P adminpassword -passwd /Users/tonyw newpass
The user
Admin
must have administrator privileges for the Mac.(All of this is incredibly insecure as you have passwords in plain text in a script.)
Of course to set the password for 'root' just change the
tonyw
toroot
in the above.Have a good look at
dscl(1)
to understand the options in the above.