#!/usr/bin/perl ############################################## #Créer pour un nouvel utilisateur, son home, son accés ftp, sa base de donnée #lui attribuer un shell (false, zsh, bash) #activer un vhost pour l'user #envoyer un mail récapitulatif a l'user ############################################ print "Nom du nouvel utilisateur web:" . "\n"; $name = ; chomp($name); print "Login du nouvel utilisateur:" . "\n"; $nuser = ; chomp($nuser); print "Mot de passe:" . "\n"; $pass = ; chomp($pass); print "Shell:" . "\n"; $shell = ; chomp($shell); print "Email du nouvel utilisateur:" . "\n"; $umail =; chomp($umail); print "Domaine du nouvel utilisateur:" . "\n"; $uhost = ; chomp($uhost); print "Pass root mysql:" ."\n"; $sql_passwd = ; chomp($sql_passwd); #################### #tester que $umail, $nuser et $pass sont valides: ################### die "Le nom d'utilisateur n'est pas défini." unless ($name); die "Le login n'est pas défini." unless ($nuser); die "Le mot de passe n'est pas défini." unless ($pass); die "Le mail n'est pas défini." unless ($umail); die "Le domaine n'est pas défini." unless ($uhost); die "Le shell n'est pas défini." unless ($shell); die "Le password de mysql n'est pas défini." unless ($sql_passwd); ########################## #créer l'utilisateur UNIX (FTP): ########################## $mkuser="adduser --gecos \"$name\" --disabled-password --home /home/web/$nuser --shell /bin/$shell $nuser"; $mkpass="chpasswd -m < $batch"; while ($ligne = ) { $ligne =~ s/\@nuser\@/$nuser/g; $ligne =~ s/\@pass\@/$pass/g; print OUT $ligne; } close IN; close OUT; system("mysql -u root -p$sql_passwd < /tmp/batch_mysql && rm /tmp/batch_mysql"); ########################## #créer et activer le vhost ########################## $tpl = "host.tpl"; $vhost = "/etc/apache2/sites-available/$uhost"; open IN, $tpl; open OUT, "> $vhost"; while ($ligne = ) { $ligne =~ s/\@uhost\@/$uhost/g; $ligne =~ s/\@nuser\@/$nuser/g; print OUT $ligne; } close IN; close OUT; $enable_vhost = "a2ensite $uhost"; $apache_reload = "/etc/init.d/apache2 reload"; system($enable_vhost); system($apache_reload); ############## #envoyer un email pour avertir de la création du compte ############## $tpl = "mail.tpl"; $mail = "/tmp/mail"; open IN, $tpl; open OUT, "> $mail"; while ($ligne = ) { $ligne =~ s/\@uhost\@/$uhost/g; $ligne =~ s/\@nuser\@/$nuser/g; $ligne =~ s/\@pass\@/$pass/g; $ligne =~ s/\@name\@/$name/g; print OUT $ligne; } close IN; close OUT; $mkmail = "mail -s \"Votre compte à été activé\" $umail < $mail && rm $mail"; system($mkmail); print "Le nouvel utilisateur a été créé, ainsi que sa base et son domaine.";