Scripts de Administración Linux

27
SCRIPTS LINUX UBUNTU 11.04 2012 Javier García Cambronel SEGUNDO DE ASIR 10/03/2012

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 opci

Transcript of Scripts de Administración Linux

Page 1: Scripts de Administración Linux

SCRIPTS LINUX UBUNTU 11.04

2012

Javier García Cambronel SEGUNDO DE ASIR

10/03/2012

Page 2: Scripts de Administración Linux

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;;

Page 3: Scripts de Administración Linux

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

Page 4: Scripts de Administración Linux

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

Page 5: Scripts de Administración Linux

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

Page 6: Scripts de Administración Linux

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"

Page 7: Scripts de Administración Linux

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

Page 8: Scripts de Administración Linux

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

Page 9: Scripts de Administración Linux

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

Page 10: Scripts de Administración Linux

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

Page 11: Scripts de Administración Linux

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

Page 12: Scripts de Administración Linux

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

Page 13: Scripts de Administración Linux

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.

Page 14: Scripts de Administración Linux

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

Page 15: Scripts de Administración Linux

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

Page 16: Scripts de Administración Linux

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

Page 17: Scripts de Administración Linux

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

Page 18: Scripts de Administración Linux

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

Page 19: Scripts de Administración Linux

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 )

Page 20: Scripts de Administración Linux

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

Page 21: Scripts de Administración Linux

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

Page 22: Scripts de Administración Linux

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

Page 23: Scripts de Administración Linux

SCRIPTS LINUX[ ] 10 de marzo de 2012

SEGUNDO DE ASIR Página 22

7.- BORRAR UN GRUPO

Page 24: Scripts de Administración Linux

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

Page 25: Scripts de Administración Linux

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

Page 26: Scripts de Administración Linux

SCRIPTS LINUX[ ] 10 de marzo de 2012

SEGUNDO DE ASIR Página 25

MENU CON LAS DIFERENTES OPCIONES

PARAR PROCESOS

Page 27: Scripts de Administración Linux

SCRIPTS LINUX[ ] 10 de marzo de 2012

SEGUNDO DE ASIR Página 26

INICIAR PROCESOS

VER PROCESOS