• [^] # La solution, c'est d'utiliser la fonction crypt

    Posté par . En réponse au message creation d'un utilisateur avec un simple programme perl. Évalué à 1.

    adduser n'admet pas d'argument '-p' ... useradd si.

    N'importe comment, il s'attend à ce qu'on lui donne déjà crypté, d'après le man :
    -p mot_de_passe
    Le mot de passe chiffré, comme renvoyé par crypt(3). Le com-
    portement par défaut est de désactiver le compte.


    Pour avoir un mot de passe DES (le format "classique") :
    my $pass_des = crypt($mot, salt(2));

    Pour avoir un mot de passe MD5 (c'est plutôt ce format qui est utilisé sous linux actuellement) :
    my $pass_md5 = crypt($mot, '1ドル$' . salt(8) . '$');


    sub salt {
    my @space = unpack 'C*', "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./";
    my $result = '';
    for (my ($n) = @_; $n > 0; --$n) {
    $result .= chr($space[random(scalar @space)]);
    }
    return $result;
    }

    « Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone