Código:
#!/bin/bash
VERIFY=`id -u`;
if [ $VERIFY != 0 ]; then
echo "Usted debe ser root para ejecutar este script.";
exit 1;
fi
echo
echo "========================================================";
echo " Servidor FTP con usuarios virtuales ";
echo "========================================================";
echo
echo "1. Instalar servidor FTP - vsftpd - <i>"
read -p "2. Ya tengo instalado el servidor, sólo configurar usuario virtual <s>: " IC;
MAIN(){
echo
echo "Para la configuración de su usuario es necesario"
echo "tener instalado Berkeley Database. Si dispone de"
echo "una version ya instalada pulse <ENTER> para continuar"
read -p "de lo contrario pulse <i> para instalar: " BD
if [ "$BD" == "i" ]; then
apt-get install libdb4.7 libdb4.7-dev db4.7-util;
fi
echo
echo "-----------------------------------";
echo "| Configuración de usuario |";
echo "-----------------------------------";
echo
read -p "Nombre del usuario virtual: " USER;
stty -echo;
read -p "Contraseña: " PASS; echo
read -p "Confirme su contraseña: " PCONF; echo
stty echo;
while [ "$PASS" != "$PCONF" ]
do
echo "Las contraseñas no coinciden.";
stty -echo;
read -p "Contraseña: " PASS; echo
read -p "Confime su contraseña: " PCONF; echo
stty echo;
done;
echo "Las contraseñas coniciden.";
echo "Actualizando base de datos...";
echo $USER >> vsftpd_login;
echo $PASS >> vsftpd_login;
db4.7_load -T -t hash -f vsftpd_login /etc/vsftpd_login.db;
chmod 600 /etc/vsftpd_login.db;
rm vsftpd_login;
echo "Haciendo backup de /etc/pam.d/vsftpd en /etc/pam.d/vsftpd.bak ...";
mv /etc/pam.d/vsftpd vsftpd.bak;
echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login crypt=hash" > /etc/pam.d/vsftpd;
echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd_login crypt=hash" >> /etc/pam.d/vsftpd;
# Configuración del archivo vsftpd.conf
echo "Introduzca la ruta del archivo vsftpd.conf a utilizar, ";
read -p "este reemplazará al original luego de hacer una copia: " FILE
echo "Haciendo backup de /etc/vsftpd.conf en /etc/vsftpd.conf.bak ..."
cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
cp $FILE /etc
echo
mkdir /etc/vsftpd; mkdir /etc/vsftpd/users;
echo "dirlist_enable=YES" >> /etc/vsftpd/users/$USER;
echo "download_enable=YES" >> /etc/vsftpd/users/$USER;
read -p "Carpeta raíz para el usuario virtual (p.ej. /srv/ftp): " FOLDER;
useradd -d $FOLDER fantasma;
echo "Se ha añadido un usuario con el nombre 'fantasma' al dirctorio FTP."
echo "Si no está de acuerdo con este usuario puede modificarlo manualmente."
echo "local_root=$FOLDER" >> /etc/vsftpd/users/$USER;
# Denied users
cat /etc/passwd | cut -d ":" -f 1 | sort > /etc/vsftpd/denied_users
}
echo Inicializando el servidor FTP ...
invoke-rc.d vsftpd start;
echo "Servidor listo!"
echo "Para una configuración más personalizada edite"
echo "manualmente sus ficheros de configuración:"
echo "/etc/vsftpd.conf; /etc/vsftpd/users;";
echo "/etc/vsftpd/denied_users; /etc/pam.d/vsftpd"
if [ "$IC" == "i" ]; then
apt-get install vsftpd;
echo "Deteniendo servicio vsftpd..."
invoke-rc.d vsftpd stop 2&>/dev/null;
MAIN
elif [ "$IC" == "s" ]; then
MAIN
else
echo
echo "Usted debió haber tomado una decisión correcta."
echo "Finalizando programa..."
echo
exit 1;
fi
Bien, pues lo que me gustaría es introducir un bucle, para que me cree mas usuarios de una sola vez, no se si me entendéis...
Un saludo y gracias.
PD: No se si este tema va aquí, si no es así perdón.