Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    modificare la password di un utente linux

    Ciao a tutti,
    devo modificare la password di un utente con un script dopo averlo aggiunto. Uso:

    system("useradd -d $3 -m $1");

    $ppass = popen("passwd $1",'w');
    fwrite($ppass,$2);
    fwrite($ppass,$2);
    pclose($ppass);

    ma non funziona perchè mi dice che la password di conferma non è corretta.
    In pratica creo l'utente e poi gli modifico la password.

    Potrei anche fare così:

    system("useradd -d $3 -p $2 -m $1");

    ma non so come criptare la password ($2) perché useradd vuole la password già criptata e io non conosco l'algoritmo per criptarla.


    PS $1 = nome utente; $2 = password; $3 = home directory
    http://www.grafsistemi.it

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    crypt o md5, dipende dal sistema (sono funzioni presenti in php).

    crea un utente con una pass che conosci e visualizza il risultato nel file passwd, poi prova a ricrearla con le funzioni che ti ho scritto sopra...

    ciao

  3. #3
    Lo avevo già provato, non sono un tipo che si arrende al primo ostacolo ma questa volta...
    ovviamente non tornano per niente uguali...forse per la funzione crypt c'è bisogno di qualche libreria particolare?

    Aggiungo un'altra cosa: ho letto sulla guida di Red Hat che la funzione crypt è disponibile per Python (o come diavolo si scrive) e per aggiungere un utente a mano si deve prendere il risultato di della funzione e darlo in pasto a useradd per il parametro -p ...
    ovviamente tutto a mano, possibile che non ci sia un cavolo di script che lo faccia automaticamente?
    http://www.grafsistemi.it

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    e invece ti sei arreso subito :P

    mi sono accorto che crypt non restituisce sempre lo stesso risultato (dato lo stesso input).

    codice:
    <?php
    
    for($i=0;$i<10;$i++) {
     echo crypt("prova")."
    ";
    }
    ?>
    
    ----
    risultato:
    
    $1$cNYi2ElO$L52RrgUQOCsWWvcQc3iaT0
    $1$s509onWL$62aWmZuXf1KnuXLeHhUTE/
    $1$QELcVp15$Jwu0nBQ.eRFUl2KfHM0Bl1
    $1$QppSvXRz$Ot8frhg4//ARmd1OvDpBg1
    $1$NTyNZ079$wCRPZBwpsc4Lm1cztyDUl0
    $1$ETcS9D.l$.hTHMRvdKZGuO5ja85Sup1
    $1$F1On1bcz$b3OP8EG7PnOXmNJO8VVPF1
    $1$vTsPmI0e$HWfNdWFJxbMJllRX3735I1
    $1$Tvw72afb$wtIN9HYt7vTi106mh6B9F1
    $1$x0vpSjkb$ssk4CJx/gWZC2FDH6j6GL.
    io ho provato a inserirne alcune a caso, e usando prova come pass entro.

    ciao ciao

  5. #5
    Certo che non restituisce il solito risultato! il seme per la generazione della parola criptata è sempre diverso!

    Idem per la password generata per la creazione di un utente linux.
    Vabè ora riprovo...mah...
    http://www.grafsistemi.it

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da ventus
    Certo che non restituisce il solito risultato! il seme per la generazione della parola criptata è sempre diverso!
    bhe scusa tanto, se tu già lo sapevi perchè hai chiesto?

    e comunque questo vale per crypt ma non per md5 (quindi ritorniamo al discorso di prima, a seconda di come è configurato il sistema viene usato l'algoritmo md5 o crypt).
    Idem per la password generata per la creazione di un utente linux.
    Vabè ora riprovo...mah...
    ciao

  7. #7
    Questo è il codice:
    $pass = crypt($argv[2]);
    system("useradd -d $3 -m -p $pass $1");

    E non funziona.
    La stringa inserita è trocata rispetto a quella restituita da crypt.
    Mi spiego meglio:

    $1$JNf8fXBG$wC/KaKJ4c9fwwyfiBBkKy. <- risultato di crypt

    /KaKJ4c9fwwyfiBBkKy. <- risultato memorizzato (sbagliato) dal sistema tramite lo script

    $1$26789308$/XAhMSJ39SUjzJypqtm3I/ <- risultato memorizzato (corretto) dal sistema dopo aver inserito l'utente con Webmin

    Ok, il risultato della funzione crypt (a quanto pare è la versione php della stessa funzione di Python) è corretto per il sistema ma non funziona lo script per l'inserimento dell'utente.
    http://www.grafsistemi.it

  8. #8
    La soluzione è talmente ovvia....nella stringa criptata sostituire il $ con \$ cioè fare l'escape del dollaro...
    Ciao a tutti grazie lo stesso...
    http://www.grafsistemi.it

  9. #9
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Originariamente inviato da ventus
    Ciao a tutti grazie lo stesso...
    prego lo stesso!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.