elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  GNU/Linux (Moderador: MinusFour)
| | |-+  Necesito ayuda con un script.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito ayuda con un script.  (Leído 2,959 veces)
Iesedobleac

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Necesito ayuda con un script.
« en: 21 Noviembre 2012, 15:57 pm »

Buenas, vereis, encontré por la web un script para VSFTPD que me creaba usuarios virtuales, el script es este:

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.


En línea

adgellida


Desconectado Desconectado

Mensajes: 531


Hardware & Software Developer


Ver Perfil WWW
Re: Necesito ayuda con un script.
« Respuesta #1 en: 21 Noviembre 2012, 18:14 pm »

Arriba del todo creas la variable para checar si quieres otro usuario o no:

Código:
OTROUSER=0;

Luego creas una función nuevouser donde debes meter TODO lo que requiera la creación del usuario.

Luego antes de salir de esa función debes poner esto:

Código:
read -p "Deseas agregar otro user? 0-no 1-si " OTROUSER;

Por último, debes realizar este bucle con llamada y sustituirlo donde antes se creaba el usuario y todo lo relacionado con él:

Código:
nuevouser

while [ "$OTROUSER" == 1 ] nuevouser

Es posible que no esté bien, todavía no domino al 100%. El concepto creo que es correcto, falta que compruebes en tu código si hay fallos y los depures, así aprenderás. Saludos


« Última modificación: 21 Noviembre 2012, 18:18 pm por tonigellida » En línea

Iesedobleac

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Necesito ayuda con un script.
« Respuesta #2 en: 21 Noviembre 2012, 18:24 pm »

Pero no entiendo muy bien el funcionamiento, podrías explicármelo con algún ejemplo? Muchas gracias por responder :)
En línea

adgellida


Desconectado Desconectado

Mensajes: 531


Hardware & Software Developer


Ver Perfil WWW
Re: Necesito ayuda con un script.
« Respuesta #3 en: 21 Noviembre 2012, 18:32 pm »

Crea un usuario nuevo si le has metido un 1 o finaliza el programa si le metes un 0. No es eso lo que querías? Alguna duda más? Lo único que se me ocurre es que no sepas que es una función, si lo sabes no debes tener ningún problema para procesar mi explicación. Expón tus dudas de la manera más exacta posible.

Otra opción que se me ocurre es que hagas un script con un bucle y ahi hagas x llamadas dependiendo de los usuarios que quieras.

Estilo así:

Cuantos usuarios quieres? 5
Creas un while con una variable contador que vaya creciendo o decreciendo
y en cada while se llame a tu script.

Puede que de esta forma lo entiendas mejor. Ahi tu script formaría el papel de "función".

La única dificultad que tiene este problema tuyo es crear una simple sentencia de bucle .

Te recomiendo que lo hagas de esta segunda forma y si lo entiendes pues te pones con la primera.

Si el código que nos has pasado lo entiendes en un 90% debes saber hacer lo que te digo sin pestañear.
« Última modificación: 21 Noviembre 2012, 18:51 pm por tonigellida » En línea

Iesedobleac

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Necesito ayuda con un script.
« Respuesta #4 en: 21 Noviembre 2012, 18:54 pm »

Claro, la idea era que yo metiera un numero de usuarios a crear y que con el bucle, creara ese numero de usuarios las veces que yo especifique, por ejemplo si quiero que me cree 5 usuarios, especifico ese numero y me crearia usuarios por ejemplo de una vez:

Usuario1
Usuario2
Usuario3
Usuario4
Usuario5

Pero de una vez.
En línea

adgellida


Desconectado Desconectado

Mensajes: 531


Hardware & Software Developer


Ver Perfil WWW
Re: Necesito ayuda con un script.
« Respuesta #5 en: 21 Noviembre 2012, 18:59 pm »

Vale, pues a parte de lo que te he dicho, debes de realizar otra modificación:

Debes poner en el nombre de usuario:

"Usuario" + i

Donde i sea la variable que crece, así se agregaría el número al nombre de usuario

i=1

Usuario1

i++

Usuario2

Todo esto debes de hacerlo con otro bucle dentro del bucle. Una vez que te funcione la segunda forma que te dije haz esto.

Hay varias formas de hacerlo.

-Otra forma es realizando el bucle 2 cada vez que te metas en el bucle asignar el nombre de Usuario+i


En resumen llama las veces que tú le digas a crear user, osea a tu script. mete a ese script en una función y pásale el argumento "i" de ese mismo instante y haces lo de "Usuario" + i. Sí asi estaría bien...ahora te lo escribo.


Código:
Crea una asignación a la variable "n" y un while que repita "i"
hasta que llegue a "n"
Cuantos users quieres? Lo guardas en "n"

i=1;

while (n<=i) nuevouser;

nuevouser (int i){
código
USER = "Usuario" + i
contraseña como tú quieras
i++
}

nuevouser es todo tu script

Ese es el concepto. Ahora te toca depurar y traducirlo a bash script. Puedes fijarte en tu script, ahi está todo lo que necesitas.

Eso te crea recursivamente usuarios hasta que llegue a n. Debes cuidar otros aspectos como la contraseña, la cual si la quieres en modo automático, ponérsela en el mismo script y no por entrada de teclado.

Ojo, lo que te paso es una idea mía y se puede realizar de otras formas.
« Última modificación: 21 Noviembre 2012, 19:16 pm por tonigellida » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
necesito un ejemplo de script
PHP
SurdoMasb 5 2,535 Último mensaje 25 Junio 2007, 00:18 am
por Red Mx
Necesito ayuda en shell script linux
Scripting
cnxi 1 3,586 Último mensaje 15 Diciembre 2011, 01:44 am
por leogtz
ayuda necesito un script
Desarrollo Web
General Dmitry Vergadoski 0 1,465 Último mensaje 1 Mayo 2012, 16:19 pm
por General Dmitry Vergadoski
Necesito ayuda con un script que modifique un archivo xml
Scripting
precambrico 2 2,049 Último mensaje 4 Mayo 2014, 19:31 pm
por precambrico
Necesito ayuda para usar script en dados habbo
Scripting
HOPEBLOOD 1 4,217 Último mensaje 15 Agosto 2020, 13:38 pm
por Drakaris
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines