scripts de administración linux
DESCRIPTION
2012SCRIPTS LINUXUBUNTU 11.04Javier García Cambronel SEGUNDO DE ASIR 10/03/2012[SCRIPTS LINUX] 10 de marzo de 2012SCRIPT ADMINISTRACION LDAP VER INFORMACION#!/bin/bash read -p "Solo el nombre del dominio: " base1 read -p "Terminacion del dominio: " base2 read -p "contraseña: " contr base="dc=$base1,dc=$base2" pass="$contr" rootdn="cn=admin,dc=$base1,dc=$base2" while [ "$op" != "F" ]; do echo "Script de administracion de LDAP" echo "------ -- -------------- -- ----" echo "Elige la opciTRANSCRIPT
SCRIPTS LINUX UBUNTU 11.04
2012
Javier García Cambronel SEGUNDO DE ASIR
10/03/2012
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 1
SCRIPT ADMINISTRACION LDAP VER
INFORMACION
#!/bin/bash
read -p "Solo el nombre del dominio: " base1
read -p "Terminacion del dominio: " base2
read -p "contraseña: " contr
base="dc=$base1,dc=$base2"
pass="$contr"
rootdn="cn=admin,dc=$base1,dc=$base2"
while [ "$op" != "F" ]; do
echo "Script de administracion de LDAP"
echo "------ -- -------------- -- ----"
echo "Elige la opción que desees, usa \"F\" para salir"
echo "1 - Listar todos los objetos"
echo "2 - Ver todas las unidades organizativas"
echo "3 - Ver datos de una OU concreta"
echo "4 - Ver todos los usuarios"
echo "5 - Buscar un usuario concreto"
echo -n "Tu opcion: "
read op
case "$op" in
1) echo "Todos los objetos del dominio"
ldapsearch -xLLL -b "$base"|more;;
2) echo "Unidades organizativas del dominio"
ldapsearch -xLLL -b "$base" objectclass=Organizationalunit;;
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 2
3) read -p "Dima la OU donde quieres buscar: " ou
ldapsearch -xLLL -b "$base" ou=$ou ou description;;
4) echo "Todos los usuarios del dominio"
ldapsearch -xLLL -b "$base" objectClass=inetOrgPerson|more;;
5) read -p "Dime el nombre del usuario a buscar: " usu
ldapsearch -xLLL -b "$base" uid=$usu;;
F) echo "Adios";;
*) echo "Elige una de las opciones que aparecen" ;;
esac
done
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 3
COMPROBACION
1 – MENÚ Y LISTAR TODOS LOS OBJETOS
Se nos pedirá el nombre del dominio, la terminación de este y la contraseña de ldap,una vez
hecho esto ya podremos interactuar, en este caso listaremos todos los objetos de nuestro
dominio.
2 - VER TODAS LAS UNIDADES ORGANIZATIVAS DEL DOMINIO
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 4
3 - VER DATOS DE UNA UNIDAD ORGANIZATIVA CONCRETA
4 - VER TODOS LOS USUARIOS DEL DOMINIO
5 - BUSCAR UN USUARIO CONCRETO Y VER SUS PROPIEDADES
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 5
ADMINISTRACION LDAP EN UBUNTU
CREAR UNIDADES ORGANIZATIVAS Y/O BORRARLAS
#!/bin/bash
read -p "Solo el nombre del dominio: " base1
read -p "Terminacion del dominio: " base2
read -p "contraseña: " contr
base="dc=$base1,dc=$base2"
pass="$contr"
rootdn="cn=admin,dc=$base1,dc=$base2"
while [ "$op" != "F" ]; do
echo "Script para crear o borrar unidades organizativas, usa \"F\" para salir"
echo "------ ---- ----- - ------ -------- -------------- --- --- ---- -----"
echo "1-Crear unidades Organizativas"
echo "2-Borrar unidades Organizativas"
echo "F - Para salir"
read -p "Que deseas hacer: " op
case "$op" in
1)read -p "Dime el nombre para la nueva unidad organizativa: " nuevaou
while [ "$nuevaou" != "F" ]; do
ldapsearch -xLLL -b "$base" ou=$nuevaou
echo "dn: ou=$nuevaou,$base" > OuPersonal.ldif
echo "objectClass: organizationalUnit" >> OuPersonal.ldif
echo "ou: $nuevaou" >> OuPersonal.ldif
sudo ldapadd -D $rootdn -w $pass -f ~/scripts/OuPersonal.ldif >
/dev/null 2>&1
if [ ! $? -eq "0" ]; then
echo
echo "Esta unidad organizativa ya existe"
else
echo
echo "OU $nuevaou creada de manera correcta"
fi
echo
read -p "Nombre para una nueva unidad organizativa o usa F si no
quieres crear mas: " nuevaou
done;;
2) read -p "Dime la ou que deseas borrar: " delou
sudo ldapdelete -x -D $rootdn -w $pass ou=$delou,dc=$base1,dc=$base2 >
/dev/null 2>&1
if [ ! $? -eq "0" ]; then
echo
echo "Esta unidad organizativa no existe"
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 6
echo
else
echo
echo "OU $delou borrada de manera correcta"
echo
fi;;
F) echo
echo "Adios"
echo;;
*) echo
echo "Elige una de las opciones que aparecen"
echo;;
esac
done
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 7
COMPROBACION
CREACION DE UNIDADES ORGANIZATIVAS
Se nos pedirá el nombre del dominio, la terminación de este y la contraseña de ldap,una vez
hecho esto ya podremos interactuar y crear las unidades organizativas y/o borrarlas, en este
caso crearla como vemos en las siguientes dos imagenes.
Vemos que se ha creado perfectamente
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 8
BORRADO DE UNIDADES ORGANIZATIVAS
Se nos pedirá el nombre del dominio, la terminación de este y la contraseña de ldap,una vez
hecho esto ya podremos interactuar y crear las unidades organizativas y/o borrarlas, en este
caso borrarla como vemos en las siguientes dos imágenes.
Podemos comprobar desde softerra mismamente que se ha borrado perfectamente
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 9
CREACION Y BORRADO DE USUARIOS
#!/bin/bash
read -p "Solo el nombre del dominio: " base1
read -p "Terminacion del dominio: " base2
read -p "contraseña: " contr
read -p "nombre de tu carpeta personal normalmente el mismo que el usuario del sistema: "
nomsis
base="dc=$base1,dc=$base2"
pass="$contr"
rootdn="cn=admin,dc=$base1,dc=$base2"
echo
echo "Crear o borrar usuarios de una unidad organizativa"
echo "--------------------------------------------------"
read -p "nombre de la unidad organizativa donde crear o borrar usuarios : " ou
while [ "$ou" != "F" ]; do
exist=`ldapsearch -xLLL -b "$base" ou="$ou"`
while [ ! "$exist" ]; do
echo
echo "La unidad organizativa $ou no existe"
exit
done
echo
echo "Opciones: "
echo "1.- Crear un usuarios"
echo "2.- Borrar un usuario"
echo "F.- Para salir"
echo
read -p "Escribe el numero de la opcion de la seleccion: " op
case "$op" in
1)
read -p "Escribe el nombre del usuario que deseas crear: " nusu
read -p "Escribe el apellido del usuario: " apeusu
read -p "Escribe el nombre que deseas con el que se va a mostrar: " mostrar
ult=`ldapsearch -xLLL -b "$base" |grep uidNumber |cut -d: -f2 |tail -1`
nuevo_uid=`expr $ult + 1`
echo "dn: uid=$nusu,ou=$ou,$base" > NuevoUser.ldif
echo "objectClass: inetOrgPerson" >> NuevoUser.ldif
echo "objectClass: posixAccount" >> NuevoUser.ldif
echo "objectClass: shadowAccount" >> NuevoUser.ldif
echo "uid: $nusu" >> NuevoUser.ldif
echo "sn: $apeusu" >> NuevoUser.ldif
echo "givenName: $nusu" >> NuevoUser.ldif
echo "cn: $nusu $apeusu" >> NuevoUser.ldif
echo "displayName: $mostrar" >> NuevoUser.ldif
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 10
echo "uidNumber: $nuevo_uid" >> NuevoUser.ldif
echo "gidNumber: 10010" >> NuevoUser.ldif
echo "gecos: $mostrar" >> NuevoUser.ldif
echo "loginShell: /bin/bash" >> NuevoUser.ldif
echo "homeDirectory: /home/$nusu" >> NuevoUser.ldif
sudo ldapadd -D $rootdn -w $pass -f /home/$nomsis/NuevoUser.ldif #> /dev/null 2>&1
if [ ! $? -eq "0" ]; then
echo
echo "Este usuario ya existe"
else
echo
echo "El usuario $mostrar se ha creado correctamente"
fi;;
2) read -p "Escribe el usuario que quieres borrar: " delusu
sudo ldapsearch -xLLL -b "ou=$ou,$base" |grep $delusu
if [ $? -eq "0" ]; then
echo
read -p "¿Seguro? (Y/N) " res
if [ "$res" = "Y" ]; then
sudo ldapdelete -c -x -D $rootdn -w $pass uid=$delusu,"ou=$ou,$base"
echo
echo "Usuario borrado correctamente"
elif [ "$res" = "N" ]; then
echo
echo "no se ha borrado"
exit
else
echo
echo "Solo Y o N"
echo
fi
else
echo
echo "El usuario $delusu no existe"
echo
fi;;
F) echo
echo "Bye!"
exit;;
*) echo
echo "Escribe el numero de la opcion de la seleccion"
echo;;
esac
done
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 11
COMPROBACION
CREAR USUARIOS
Se nos pedirá el nombre del dominio, la terminación de este, la contraseña de ldap, y el
nombre de la carpeta personal, que será donde se guardara el archivo, una vez hecho esto ya
podremos interactuar y crear los usuarios y/o borrarlos, en este caso crearlo como vemos en
las siguientes dos imágenes.
Vemos que el usuario David, se ha creado perfectamente
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 12
BORRAR USUARIOS
Podremos borrarlo directamente, antes de que se termine de ejecutar, si no se nos volvería a
pedir el dominio y los demás datos necesarios, siendo así, solo tendremos que seleccionar la
opción correspondiente para que se borre, sin ningún problema.
Ahora vemos, como el usuario ya no esta, con lo cual se ha borrado perfectamente.
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 13
COPIA DE SEGURIDAD
#!/bin/bash
echo
echo "Crear respaldo y restaurar sistema LDAP"
echo "---------------------------------------"
read -p "solo el nombre del dominio: " base1
read -p "Terminacion del dominio: " base2
read -p "nombre de tu carpeta personal normalmente el mismo que el usuario del sistema: "
nomsis
base="dc=$base1,dc=$base2"
pass="$contr"
rootdn="cn=admin,dc=$base1,dc=$base2"
#echo "Parando el servicio LDAP"
#sudo /etc/init.d/slapd stop
echo "Realizando copia..."
sudo ldapsearch -xLLL -b "dc=$base1,dc=$base2" > /home/$nomsis/respaldo-
dc=$base1,dc=$base2-`date +%d-%b-%Y`.ldif
echo
#echo "Encendiendo servicio LDAP"
#sudo /etc/init.d/slapd start
echo
read -p "Para ver ver el fichero de respaldo creado pulsa S/N" op
if [ "$op" = "S" ]; then
sudo cat /home/$nomsis/respaldo-dc=$base1,dc=$base2-`date +%d-%b-%Y`.ldif
fi
echo
read -p "Quieres restaurar el sistema con este fichero ahora (Escribe S/N)" op
if [ "$op" = "S" ]; then
echo
echo "Deteniendo el servicio LDAP..."
sudo /etc/init.d/slapd stop
echo
echo "Borrando Base de datos LDAP..."
sudo rm -fv /var/lib/ldap/*
echo
echo "Restaurando desde copia de respaldo..."
sudo slapadd -v -b dc=$base1,dc=$base2 -l /home/$nomsis/respaldo-
dc=$base1,dc=$base2-`date +%d-%b-%Y`.ldif
echo
echo "Reindexando Base de datos LDAP"
sudo slapindex -v
echo
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 14
echo "Cambiando permisos de usuario y grupo LDAP..."
sudo chown -R openldap:openldap /var/lib/ldap
echo
echo "Reiniciando servicio LDAP..."
sudo /etc/init.d/slapd start
echo
echo "Fin de restauracion LDAP"
echo
read -p "Para ver el estado actual del sistema LDAP escribe S/N" op
if [ "$op" = "S" ]; then
echo
ldapsearch -xLLL -b dc=$base1,dc=$base2
fi
echo
echo "Bye!"
echo
else
echo
echo "Bye!"
echo
fi
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 15
Veremos como otra vez, se nos pide el nombre del dominio y la terminación de este y
también indicaremos el nombre de la carpeta personal de nuestro usuario, una vez
ejecutado se realizara la copia, y podremos ver el contenido del archivo de respaldo.
Nos preguntara que si deseamos restaurar el sistema, con el fichero recién creado
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 16
Y se iniciara, la restauración
Una vez terminada la restauración, podremos ver el estado actual del sistema
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 17
ADMINISTRACION UBUNTU
#!/bin/bash
#Script de Administración de Linux.
#Comprobamos que el usuario es root.
if [ $(whoami) != "root" ]; then
echo "Debes ser root para correr este script."
echo "Para entrar como root, escribe \"sudo su\" sin las comillas."
exit 1
fi
#Presentación.
echo
echo "Script de Administración de Linux Ubuntu v. 0.1"
echo "------ -- -------------- -- ----- ------ -- ---"
echo
#Menu de Administración
while [ "$opcion" != "0" ]
do
#Mostramos el menú
echo
echo "Menú"
echo "----"
echo " 1. Crear un usuario."
echo " 2. Cambiarle la contraseña a un usuario."
echo " 3. Crear grupo."
echo " 4. Añadir un usuario a un grupo."
echo " 5. Ver datos de un usuario."
echo " 6. Borrar un usuario."
echo " 7. Borrar un grupo."
echo " 0. Salir."
echo
echo -n " Elige una opción: "
read opcion
case $opcion in
1 )
echo
echo -n " Dame el nombre del usuario a crear: "
read nombre
echo
adduser $nombre
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 18
echo
;;
2 )
echo
echo -n " Dame el nombre del usuario a cuya contraseña quieres cambiar: "
read nombre
echo
passwd $nombre
echo
;;
3 )
echo
echo -n " Dame el nombre del grupo: "
read grupo
echo
addgroup $grupo
echo
;;
4 )
echo
echo -n " Dame el nombre del usuario: "
read nombre
echo -n " Dame el nombre del grupo: "
read grupo
echo
addgroup $nombre $grupo
echo
;;
5 )
echo
echo -n " Dame el nombre del usuario: "
read nombre
echo
id $nombre
echo
;;
6 )
echo
echo -n " Dame el nombre del usuario: "
read nombre
echo
deluser $nombre
echo
;;
7 )
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 19
echo -n " Dame el nombre del grupo: "
read grupo
echo
delgroup $grupo
echo
;;
esac
done
echo
echo " Hasta Pronto!"
echo " ----- -------"
echo
exit 0
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 20
COMPROBACION
MENU DE ADMINISTRACION DEL SISTEMA
1.- CREAR UN USUARIO NUEVO PARA EL SISTEMA
2.- CAMBIAR DE CONTRASEÑA A UN USUARIO DEL SISTEMA
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 21
3.- CREAR UN GRUPO NUEVO
4.- AÑADIR UN USUARIO A UN GRUPO DEL SISTEMA
5.- INFORMACIÓN DE UN USUARIO DEL SISTEMA
6.- BORRAR UN USUARIO DEL SISTEMA
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 22
7.- BORRAR UN GRUPO
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 23
VER SERVICIOS Y PROCESOS
(PARARLOS Y/O ARRANCARLOS) #!/bin/bash
echo
echo "Procesos del sistema"
echo "--------------------"
echo
echo "1.- Parar procesos"
echo "2.- Arrancar procesos"
echo "3.- Ver procesos"
echo "F.- Salir"
echo
read -p "Escribe el numero de tu selección :" deci
if [ "$deci" == 1 ]; then
read -p "Escribe el nombre del proceso, para verificar si está activo: (Escribe * para salir) "
proc
while [ "$proc" != "*" ]; do
ps -ax | grep $proc
echo
read -p "El procesos se detendrá ¿Realmente deseas pararlo?: (Escribe si/no) " res
if [ "$res" != "no" ]; then
if id | grep uid=0; then
read -p "¿Seguro que deseas terminar el proceso $proc?" res2
if [ "$res2" != "no" ]; then
read -p "Escribe el nombre del proceso correctamente: " proc2
killall $proc2;
echo
echo "Proceso $proc2 terminado con exito"
fi
else
echo
echo "Acceso denegado, hay que ser sudo para acabar el proceso"
echo
fi
else
echo
echo "Selecciona otro proceso. (Escribe * para salir)"
fi
read -p "Escribe el nombre del proceso, para verificar si está activo: (Escribe * para salir) "
proc
done
elif [ "$deci" == 2 ]; then
read -p "Escribe el nombre del proceso que quieres arrancar (Escribe * para salir): " proc
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 24
while [ "$proc" != "*" ]; do
ps -ax | grep $proc
echo
read -p "¿Realmente deseas arrancar el proceso? (Escribe si/no) " res
if [ "$res" != "no" ]; then
read -p "Escribe el nombre del proceso correctamente: " proc2
#find /etc/init.d/ -name $proc
sudo /etc/init.d/$proc2* start
fi
read -p "Escribe el nombre del proceso que quieres arrancar (Escribe * para salir): " proc
done
elif [ "$deci" == 3 ]; then
echo "Lista de procesos activos"
echo "-------------------------"
echo
ps -an
else
echo
echo "Bye!"
echo
fi
echo
echo "Bye!"
echo
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 25
MENU CON LAS DIFERENTES OPCIONES
PARAR PROCESOS
SCRIPTS LINUX[ ] 10 de marzo de 2012
SEGUNDO DE ASIR Página 26
INICIAR PROCESOS
VER PROCESOS