Mdillon: the exact purpose of this is to create a user using adduser bob -p $encrypass as the command, run from a perl script. i'm stuck :-( | [reply] [Watch: Dir/Any] |
use Crypt::PasswdMD5;
my $crypted = unix_md5_crypt $passwd, $salt;
Or, since you're apparently using RedHat (since adduser is a RedHat-specific command AFAIK) and your libc's crypt should do MD5-crypt automatically given a proper MD5 salt, use:
my $crypted = crypt $passwd, $salt;
To make sure this works, print the value of $crypt; it should be something like $1$b1yv9grF$mpwoS2r11VtENFrAmF2WW/ (instead of the shorter string returned by traditional DES-crypt). Once you've confirmed that you have what looks like an MD5-crypted password, use the value of $crypted in your command line:
system("adduser", "bob", "-p", $crypted) == 0
or die "Error adding user 'bob': $!$/";
The secret to getting crypt to work correctly is in providing a salt starting with '$1$' and having 8 characters (instead of the normal 2 used for DES-crypt). There are similar conventions for using other crypt variants (e.g. '$2$' for SHA-crypt). | [reply] [Watch: Dir/Any] [d/l] [select] |
-p passwd
The encrypted password, as returned by crypt(3).
The default is to disable the account.
That is, unless you use a modified adduser, you have to provide a crupt'ed password (not md5). | [reply] [Watch: Dir/Any] [d/l] [select] |