The passwd
command rejects the idea that you can have a 0 length password.
Instead use dscl
which is more accepting of the notion that the password is nothing.
dscl . -passwd /Users/foo
You can press enter to make the new password blank and then may get an error and have to enter the old password if you are not root but once
Once you authenticate (or are root already) the blank password will be writtenset for the account in question.