Aaron Konstam wrote:
The problem as I see it is to generate passwds automatically. There used to be a program mkpasswd that did that but I can't find that now.
In my case, I had the password and username, I just needed to pass them. With the help from another list, I ended up with this. Since I was going to pass both the username and password to this script, I just wrote one bash shell script that took both values and processed them accordingly:
cat useradd.sh
#!/bin/sh # # This has been simplified. Adjust to your own needs. username=$1 password=$2 USHELL=/bin/bash
crypt=`/path/to/crypt.pl $password`
/usr/sbin/useradd -d "/home/$username" -p "$crypt" -s $USHELL "$username";
And the crypt.pl script looks like this:
cat crypt.pl
#!/usr/bin/perl use Crypt::Passwd; my $salt = join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]; print unix_std_crypt($ARGV[0], "$1$$salt$");
And while I could've done the whole thing in one perl script, by splitting them into two pieces, it allows me to re-use the crypt.pl part in other scripts.