Hey
Nachdem ich heute auf den Fehler gestoßen bin, dass der befehl “useradd” für den parameter -p nur MD5 gecryptete passwörter nimmt musste ich mir eine methode überlegen wie ich aus einer variable in bash am besten ein passwort erstellen kann. Das ganze habe ich dann so gelöst indem ich mir ein kleines C projekt gezaubert habe:
#include <iostream> /* * Autor: Kordian Bruck - http://blog.wdkk.de/ * Modified: Dominic Reich - <dr @dark-fellow.info> */ using namespace std; int main (int argc, char* argv[]){ if( argc == 2 ){ cout <<crypt( argv[1], "$1$" ) << endl; return 0; } else{ cerr << "Usage: " << argv[0] << " <your key to crypt here>" << endl; return -1; } }
Das ganze wird dann mit dem befehl compiliert:
gcc -lcrypt md5.crypt.c -o md5.crypt
In dem Bash script kann dann einfach die md5.crypt mit dem passwort als argument aufgerufen werden, z.b.:
password_crypt=$(/web/res/crypt/md5.crypt $password) echo Creating:$user:$password:$password_crypt
Leichter gehts wohl kaum noch und besser als das ganze mit perl zu machen ist es meiner meinung nach auch.
Viel Spaß