Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - #!/bin/bash
 - # Demande le nom d'utilisateur
 - read -p "Nom d'utilisateur : " nom_d_utilisateur
 - # Vérifie si le nom d'utilisateur est vide
 - if [ -z $nom_d_utilisateur ]
 - then
 - echo "Nom d'utilisateur vide"
 - exit 1
 - fi
 - # Vérifie si le script possède les privilèges superutliisateur
 - if [ "$UID" -ne 0 ]
 - then
 - echo "Privilèges superutilisateur requis"
 - exit 1
 - fi
 - dossier_vsftpd="/etc/vsftpd/"
 - fichier_login="login.txt"
 - extension_sauvegarde=".bak"
 - # Vérifie si le fichier login existe
 - if [ -f $dossier_vsftpd$fichier_login ]
 - then
 - # Sauvegarde le fichier login
 - cp -v $dossier_vsftpd$fichier_login \
 - $dossier_vsftpd$fichier_login$extension_sauvegarde || (
 - exit 1
 - )
 - else
 - # Crée le fichier login
 - touch $dossier_vsftpd$fichier_login || (
 - echo "Impossible de créer $fichier_login"
 - exit 1
 - )
 - fi
 - # Vérifie si l'utilisateur existe
 - if [[ -z `grep "^$nom_d_utilisateur$" $dossier_vsftpd$fichier_login` ]]
 - then
 - echo "$nom_d_utilisateur introuvable"
 - exit 1
 - fi
 - # Récupère le mot de passe
 - read -p "Nouveau mot de passe : " mot_de_passe
 - # Vérifie si le mot de passe est vide
 - if [ -z $mot_de_passe ]
 - then
 - echo "Mot de passe vide"
 - exit 1
 - fi
 - # Change le mot de passe
 - sed "/^$nom_d_utilisateur$/{n;s/^.*$/$mot_de_passe/}" \
 - $dossier_vsftpd$fichier_login$extension_sauvegarde > \
 - $dossier_vsftpd$fichier_login
 - version_db="5.1"
 - paquets_db="libdb$version_db db$version_db-util db$version_db-doc"
 - verifie_si_db_est_installe() {
 - # Calcule le SHA-256
 - hash=`echo "$paquets_db" | sed "s/ /\n/g" | sort | sha256sum | sed \
 - "s/ \-$//g"`
 - # Compare le résultat avec celui de dpkg
 - awk -v paquets_db="$paquets_db" '
 - BEGIN {
 - split(paquets_db, lignes, " ")
 - }
 - {
 - for (iterateur in lignes) {
 - if ($2 == lignes[iterateur]) {
 - print $2 | "sort | sha256sum"
 - }
 - }
 - }
 - END {
 - close("sort | sha256sum")
 - }' <(dpkg -l) | awk -v hash=$hash '
 - $1 == hash {
 - code_de_retour = 1
 - }
 - END {
 - exit code_de_retour - 1
 - }'
 - }
 - verifie_si_db_est_installe || (
 - # Installe DB
 - apt-get -V install $paquets_db
 - verifie_si_db_est_installe || (
 - echo "Impossible d'installer $paquets_db"
 - exit 1
 - )
 - )
 - # Vérifie si login.db existe
 - if [ -f ${dossier_vsftpd}login.db ]
 - then
 - # Sauvegarde login.db
 - cp -v ${dossier_vsftpd}login.db \
 - ${dossier_vsftpd}login.db$extension_sauvegarde || (
 - exit 1
 - )
 - # Supprime login.db
 - rm -v ${dossier_vsftpd}login.db || (
 - exit 1
 - )
 - fi
 - # Converti le fichier login au format DB
 - db${version_db}_load -T -t hash -f $dossier_vsftpd$fichier_login \
 - ${dossier_vsftpd}login.db || (
 - # Vérifie si la sauvegarde de login.db existe
 - if [ -f ${dossier_vsftpd}login.db$extension_sauvegarde ]
 - then
 - # Restaure login.db
 - cp -v ${dossier_vsftpd}login.db$extension_sauvegarde \
 - ${dossier_vsftpd}login.db || (
 - exit 1
 - )
 - fi
 - echo "Impossible de créer login.db"
 - exit 1
 - )
 - # Restreint l'accès aux fichiers login
 - chmod -v 600 ${dossier_vsftpd}login.* || (
 - exit 1
 - )
 - # Affiche les identifiants
 - echo "$nom_d_utilisateur a pour nouveau mot de passe : $mot_de_passe"
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment