Set the master password from terminal
Solution 1:
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 no master.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
to root
in the above.
Have a good look at dscl(1)
to understand the options in the above.
Solution 2:
OK, for FileVault you need to use the fdesetup
command. Set up a test Mac, have a long hard look at the man page and give it all a try. From the man page it looks like you can change the FileVault recovery password using the changerecovery
option.
Sorry, but I'm not prepared to do the testing to give you the exact commands as getting it wrong could seriously screw my Mac. There are a bunch of examples in the man page.
BTW - I found it by going apropos FileVault
at the command line. Always a good first step.
Solution 3:
Restart your Mac and hold Command+s, let it load, and then type:
/sbin/fsck -y
/sbin/mount -UAW
This will bring up a user directory, then type:
ls /Users/
Note let's assume account name is xyz
, type:
passwd xyz
Note the command line should be blank. Type in the new password and press enter. Note the command line should be blank again.
Retype the new password and press enter. Finally type:
reboot