Sometimes, you need to put a non-interactive passwords using scripts, as you can see, you can’t use passwd tool, because it only works using interactive way.
chpasswd reads a list of user name and password pairs from standard input and uses this information to update a group of existing users. Each line is of the format:
user_name:password
By default the supplied password must be in clear-text. Default encryption algorithm is DES. Also the password age will be updated, if present.
This command is intended to be used in a large system environment where many accounts are created at a single time.
Available Options
The options which apply to the chpasswd command are:
-e, --
encrypted – Supplied passwords are in encrypted form.
-h, --
help – Display help message and exit.
-m, --
md5 – Use MD5 encryption instead of DES when the supplied passwords are not encrypted
Check passwords using the following command
echo “user:pass” | chpasswd
echo “foo\nfoo” | passwd lied
New UNIX password: BAD PASSWORD: it is WAY too short
Retype new UNIX password: passwd: password updated successfully
🙂
@Lied: bullshit, you way doesn’t work! At least on Debian 4.0r5 Etch.
The only way I know which works is really:
echo root:asd12qniqsdq | chpasswd
…