domingo, 30 de noviembre de 2008

Shell Scripts - Script para exportar directorios

Script para la exportación de directorios en sistemas Linux.

#!/bin/bash

DIR=vacio
READ=vacio
WRITE=vacio
MACHINE=vacio
SERVICES=vacio

NOTVALID=1
clear
while getopts d:rwm:s OPCION
do
if [ "$OPCION" = "d" ];then
DIR=$OPTARG
NOTVALID=2
fi
if [ "$OPCION" = "r" ];then
READ=si
fi
if [ "$OPCION" = "w" ];then
WRITE=si
fi
if [ "$OPCION" = "m" ];then
MACHINE=$OPTARG
NOTVALID=2
fi
if [ "$OPCION" = "s" ];then
SERVICES=si
fi
done

if [ "$NOTVALID" = 2 ];then
if [ "$DIR" = "vacio" ] || [ "$DIR" = "" ];then
echo "[X] El directorio introducido no es valido."
sleep 2
exit
else
test -d $DIR
EXISTE=$?
if [ "$EXISTE" = 1 ];then
echo "[X] El directorio introducido no existe."
sleep 2
echo "[?] ¿Desea crearlo? (s/n)"
read ANS
if [ "$ANS" = "s" ];then
mkdir $DIR
else
NOTVALID=1
fi
else
if [ "$MACHINE" = "vacio" ];then
echo "[i] Introduzca una maquina o una red para establecer el compartimento:"
read MACHINE
echo "[?] ¿Se trata de una red? (s/n)"
read ANS
if [ "$ANS" = "s" ];then
echo "Ajustando parametros de mascara para la red $MACHINE ..."
sleep 2
MACHINE=$MACHINE"/255.255.255.0"
fi
fi
fi
fi
fi

EXISTE=1
if [ "$NOTVALID" = 1 ];then
until [ "$EXISTE" = 0 ]
do
echo "[i] Introduzca un directorio a exportar:"
echo "Directorio (Ruta completa):"
read DIR
test -d $DIR
EXISTE=$?
if [ "$EXISTE" = 1 ];then
echo "[X] El directorio introducido no existe."
sleep 2
echo "[?] ¿Desea crearlo? (s/n)"
read ANS
if [ "$ANS" = "s" ];then
mkdir $DIR
EXISTE=0
fi
else
echo "Asignando permisos minimos necesarios ..."
sleep 2
chmod o+r $DIR
echo "[i] Introduzca una maquina para añadir al fichero de compartimento:"
read MACHINE
echo "[?] ¿Se trata de una red? (s/n)"
read ANS
if [ "$ANS" = "s" ];then
echo "Ajustando parametros de mascara para la red $MACHINE ..."
sleep 2
MACHINE=$MACHINE"/255.255.255.0"
fi
fi
done
fi
echo "READ=$READ,WRITE=$WRITE"
read x
if [ "$READ" = "si" ] && [ "$WRITE" = "vacio" ];then
MACHINE=$MACHINE"(ro)"
else
if [ "$READ" = "vacio" ] && [ "$WRITE" = "si" ];then
MACHINE=$MACHINE"(rw)"
else
if [ "$READ" = "si" ] && [ "$WRITE" = "si" ];then
MACHINE=$MACHINE"(rw)"
fi
if [ "$READ" = "vacio" ] && [ "$WRITE" = "vacio" ];then
echo "[?] ¿Desea dar permiso de solo lectura al recurso, o de lectura y escritura? (r-solo lectura, w-lectura y escritura)"
read ANS
if [ "$ANS" = "r" ];then
MACHINE=$MACHINE"(ro)"
fi
if [ "$ANS" = "w" ];then
MACHINE=$MACHINE"(rw)"
fi
fi
fi
fi
echo "Concediendo los permisos establecidos ..."
sleep 2
if [ "$SERVICES" = "si" ];then
/etc/init.d/nfs restart
/etc/init.d/portmap restart
fi
echo "$DIR $MACHINE" >> /etc/exports

Shell Scripts - Script gestión usuarios para vsftpd

A continuación un script para gestionar usuarios de este servicio. Para echarle un ojo!

#!/bin/bash

USUARIO=vacio
PASSWORD=vacio
NOTVALID=1

#EVALUACION DE PARAMETROS
#------------------------

while getopts u:p: OPCION
do
if [ "$OPCION" = "u" ];then
USUARIO=$OPTARG
NOTVALID=2
fi
if [ "$OPCION" = "p" ];then
PASSWORD=$OPTARG
NOTVALID=2
fi
done

#FILTROS
if [ "$NOTVALID" = 2 ];then
if [ "$USUARIO" = "" ] || [ "$USUARIO" = "vacio" ];then
echo "[X] El usuaio introducido no es valido."
sleep 2
NOTVALID=1
fi
if [ "$PASSWORD" = "" ] || [ "$PASSWORD" = "vacio" ];then
echo "[X] El password introducido no es valido."
sleep 2
NOTVALID=1
fi
if [ "$NOTVALID" != 1 ];then
NOTVALID=0
fi
fi

#INTRODUCCION SI NO SE LE PASAN PARAMETROS
until [ "$NOTVALID" = 0 ]
do
clear
if [ "$USUARIO" = "vacio" ] || [ "$NOTVALID" = 1 ];then
echo "[i] Introduzca un nombre para el usuario:"
read USUARIO
echo "[i] Introduzca un password para el usuario $USUARIO:"
read PASSWORD
NOTVALID=0
fi
if [ "$USUARIO" = "" ];then
echo "[X] Usuario no valido."
NOTVALID=1
fi
if [ "$PASSWORD" = "" ];then
echo "[X] Password de $USUARIO no valido."
NOTVALID=1
fi
done

#Compruebo la existencia del fichero users.txt, si no existe, lo creo
test -f /etc/vsftpd/users.txt
EXISTE=$?
if [ "$EXISTE" = 1 ];then
>/etc/vsftpd/users.txt
fi

CONT=0
while read LINEA
do
let CONT=$CONT+1
let A=$CONT%2
if [ $A = 1 ];then
if [ "$LINEA" = "$USUARIO" ];then
echo "[X] El usuario introducido ya existe."
sleep 2
exit
fi
fi
done < /etc/vsftpd/users.txt echo "$USUARIO" >> /etc/vsftpd/users.txt
echo "$PASSWORD" >> /etc/vsftpd/users.txt
echo "[i] Añadiendo a $USUARIO ..."
sleep 2

/etc/init.d/vsftpd restart
db_load -T -t hash -f /etc/vsftpd/users.txt /etc/vsftpd/users.db
echo "Compilando fichero de usuarios..."
sleep 2

echo "auth required /lib/security/pam_userdb.so db=/etc/vsftpd/users" > /etc/pam.d/vsftpd
echo "account required /lib/security/pam_userdb.so db=/etc/vsftpd/users" >> /etc/pam.d/vsftpd

test -d /etc/vsftpd/users
EXISTE2=$?
if [ "$EXISTE2" = 1 ];then
echo "Creando directorio para las configuraciones de los usuarios..."
sleep 2
mkdir /etc/vsftpd/users
fi

#Crea el fichero de configuracion del usuario
>/etc/vsftpd/users/$USUARIO
echo "Creando fichero de configuracion para $USUARIO ..."
sleep 2

mkdir /home/ftpvirtual/$USUARIO
chown ftpvirtual /home/ftpvirtual/$USUARIO
echo "Dando permisos necesarios al directorio /home/ftpvirtual/$USUARIO ..."
sleep 2

echo "local_root=/home/ftpvirtual/$USUARIO" >> /etc/vsftpd/users/$USUARIO

clear
echo "[?] ¿Desea que $USUARIO tenga permisos de escritura en el directorio? (s/n)"
echo "Respuesta:"
read ANSW
if [ "$ANSW" = "s" ];then
echo "write_enable=YES" >> /etc/vsftpd/users/$USUARIO
else
echo "write_enable=NO" >> /etc/vsftpd/users/$USUARIO
fi
ANSW=0
echo "[?] ¿Desea que $USUARIO descargue archivos del servidor ftp? (s/n)"
echo "Respuesta:"
read ANSW
if [ "$ANSW" = "s" ];then
echo "download_enable=YES" >> /etc/vsftpd/users/$USUARIO
else
echo "download_enable=NO" >> /etc/vsftpd/users/$USUARIO
fi

sábado, 29 de noviembre de 2008

Eliminar Windows Genuine

Bueno, si teneis las actualizaciones de windows activadas y habéis actualizado de forma automática, es posible que Windows haya instalado su herramienta Genuine para notificaros de que vuestro Sistema Operativo (vuestro Windows) no es original. Bueno, visitar este enlace (aquí), descargar la pequeña aplicación y ejecutarla. Os pedirá reiniciar y ... Asunto arreglado!

Otros - En la lucha con la Informática

Actualmente, a los informáticos, se nos está despreciando. Siempre hemos estado poco valorados en el mundo laboral, la gente menosdesprecia nuestro trabajo. Se cree que la informática es saber instalar software, manejar bien paquetería de ofimática u optimizarle el pc al vecino.
Nosotros los informáticos (y quién no piense esto que considere su profesión), hemos de luchar porque esto cambie. Tenemos que valorar nosotros mismos nuestro trabajo, demostrar que es algo más, ir más allá. Hemos de empezar por reivindicar nuestros derechos.
Hace unos días, la propagación de una carta produjo cierto nerviosismo. La informática como ingeniería se ponía en tela de juicio. Se hablaba de que se eliminiaría, de que no podríamos terminar nuestros estudios o que si los terminabamos, no seríamos reconocidos nacionalmente ni a nivel de Europa. Hoy en día, con manifestaciones y acciones masivas en la red, tenemos la intención de llamar la atención del ministerio, de las entidades responsables para que reconozcan nuestra profesión, nuestros estudios. Luchamos porque queremos tener unas atribuciones profesionales y un reconocimiento.
Lucheomos pues.