SHARE
TWEET

Gestión Básica de usuarios en linux

a guest Dec 6th, 2010 6,698 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2. sleep 1
  3. echo
  4. echo "*****************************************************************************"
  5. echo "*                                                                           *"
  6. echo "* Script para gestionar usuarios a traves de un GUI    >> GESTUSERS <<      *"
  7. echo "*                                                                           *"
  8. echo "* Fecha y hora de la ejecución del Script                                   *"
  9. echo "* `date +%d-%m-%Y`   -   `date +%H:%M:%S`                                   *"
  10. echo "*                                                                           *"
  11. echo "* Puedes modificarlo y/o distribuirlo bajo los términos de la licencia GPL  *"
  12. echo "*                                                                           *"
  13. echo "* Autor: Alejandro Alcalde (algui91) - Mar. '10                      *"
  14. echo "*                                                                           *"
  15. echo "*****************************************************************************"
  16. sleep 1
  17.  
  18. # Gestion de usuarios grafica
  19. function main(){
  20.         while [ true ]
  21.         do
  22.                 opcion=`zenity --list --height=300 --radiolist \
  23.                         --title="Elija una opcion" \
  24.                                 --column="" --column="Opcion" \
  25.                         "FALSE" "1 Crear Usuario con home" \
  26.                         "TRUE" "2 Crear grupo" \
  27.                                 "FALSE" "3 Añadir usuario/Grupo" \
  28.                         "FALSE" "4 Eliminar Usuario/Grupo" \
  29.                         "FALSE" "5 Eliminar Usuario" \
  30.                         "FALSE" "6 Mostrar usuarios de un grupo" \
  31.                                         "FALSE" "7 Eliminar grupo" \
  32.                         "FALSE" "8 Salir"`
  33.                 if [ "$?" == 1 ] ; then seleccion 7 ; fi #Si se pulsa cancelar y cerrar, lo evio al log
  34.                 seleccion `echo $opcion | cut -c 1` "$opcion" # Corto la opcion para quedarme solo con el numeros
  35.         done
  36. }
  37. ###################################################################################
  38. function seleccion(){
  39.         case $1 in
  40.         1)
  41.                 user=`zenity --entry --width=300 --text "Nombre del usuario" --title "$2"`
  42.                 cod=`echo $?`
  43.                 if [ $cod == 0 ] #Pulso aceptar o cerrar
  44.                 then
  45.                         sudo adduser $user
  46.                         if [ "$?" == 1 ] # si la salida de adduser es 1, es que el usuario existe
  47.                         then
  48.                                 zenity --warning --title="AddUser" --text="El usuario $user ya existe"
  49.                         else
  50.                                 echo "creo el usuario $user" >> /tmp/log                #Almaceno las operaciones del usuario
  51.                                 progress "Creando usuario" $user "$2"
  52.                         fi
  53.                 elif [ $cod == -1 ] #Error
  54.                 then
  55.                         zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
  56.                 fi     
  57.                 ;;
  58.         2)
  59.                 group=`zenity --entry --width=300 --text "Nombre del grupo" --title "$2"` #Recogo el nombre del nuevo grupo
  60.                 cod=`echo $?`
  61.                 if [ $cod == 0 ] #Pulso aceptar o cerrar
  62.                 then
  63.                         creargrupo "$group" #llamo a mi funcion crear grupo
  64.                         if [ "$?" == 0 ] # si creargrupo devuevle 0, todo correcto
  65.                         then
  66.                                 progress "Creando grupo" $group "$2"
  67.                                 echo "creo el grupo $group" >> /tmp/log
  68.                         fi
  69.                 elif [ $cod == -1 ] #Error
  70.                 then
  71.                         zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
  72.                 fi
  73.                 ;;
  74.         3)
  75.                 listaUser=`cat /etc/passwd | cut -d: -f1 | sort` #extraigo del archivo passwd una lista de los usuarios ordenada
  76.                 user=`zenity --list --height=300 --title="Elija un usuario" --column="USER" $listaUser` #Meto los usuarios en el list
  77.                 cod=`echo $?`
  78.                 if [ $cod == 0 ] #Pulso Aceptar
  79.                 then
  80.                         lsgrp=`cat /etc/group | cut -d: -f1 | sort`
  81.                         grp=`zenity --list --height=300 --title="Elija un grupo" --column="GRUPOS" $lsgrp`
  82.                         sudo usermod -aG $grp $user # -a de append, que no lo quite de su anterior grupo, y -G para agregarlo a otro grupo como secundario
  83.                         zenity --info --no-wrap --title="$2" --text="Añadió a \'$user\' al grupo $grp"
  84.                         echo "Añadió a $user al grupo $grp" >> /tmp/log
  85.                 elif [ $cod == -1 ] #Error
  86.                 then
  87.                         zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
  88.                 fi
  89.                 ;;
  90.         4)
  91.                 listaUser=`cat /etc/passwd | cut -d: -f1 | sort`
  92.                 user=`zenity --list --height=300 --title="Elija un usuario" --column="USER" $listaUser`
  93.                 cod=`echo $?`
  94.                 if [ $cod == 0 ] #Pulso Aceptar
  95.                 then
  96.                         lsgrp=`cat /etc/group | cut -d: -f1 | sort`
  97.                         grp=`zenity --list --height=300 --title="Elija un grupo" --column="GRUPOS" $lsgrp`
  98.                         sudo deluser $user $grp # pasandole a deluser un usuario y un grupo, borra al usuario del grupo
  99.                         zenity --info --no-wrap --title="$2" --text="Eliminó a \'$user\' del grupo $grp"
  100.                         echo "Eliminó a $user del grupo $grp" >> /tmp/log
  101.                 elif [ $cod == -1 ] #Error
  102.                 then
  103.                         zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
  104.                 fi
  105.                 ;;
  106.         5)
  107.                 listaUser=`cat /etc/passwd | cut -d: -f1 | sort`
  108.                 user=`zenity --list --height=300 --title="Elija una opcion" --column="USER" $listaUser`
  109.                 cod=`echo $?`
  110.                 if [ $cod == 0 ] #Pulso aceptar o cerrar
  111.                 then
  112.                         zenity --question --title="deluser" --text="Borrar home de $user?"
  113.                         if [ $? == 0 ]
  114.                         then
  115.                                 sudo deluser $user --remove-home
  116.                                 echo "Elimino el usuario $user con su home" >> /tmp/log
  117.                                 progress "Eliminando Usuario" $user "$2"
  118.                         else
  119.                                 sudo deluser $user
  120.                                 echo "Elimino el usuario $user y no su home" >> /tmp/log
  121.                                 progress "Eliminando Usuario" $user "$2"
  122.                         fi
  123.                 elif [ $cod == -1 ] #Error
  124.                 then
  125.                         zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
  126.                 fi
  127.                 ;;
  128.         6)
  129.                 lsgrp=`cat /etc/group | cut -d: -f1 | sort`
  130.                 grp=`zenity --list --height=300 --title="Elija un grupo" --column="GRUPOS" $lsgrp`
  131.                 cod=`echo $?`
  132.                 if [ $cod == 0 ] #Pulso Aceptar
  133.                 then
  134.                         member=`cat /etc/group | grep $grp: | cut -d: -f4 | sort` #Localizo el nombre del grupo con grep $grp: y corto los miembros
  135.                         zenity --info --no-wrap --title="$2" --text="El grupo $grp tiene de miembros: $member"
  136.                        
  137.                         echo "Listó los miembros de $grp" >> /tmp/log
  138.                 elif [ $cod == -1 ] #Error
  139.                 then
  140.                         zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
  141.                 fi
  142.                 ;;
  143.         7)
  144.                 lsgrp=`cat /etc/group | cut -d: -f1 | sort`
  145.                 grp=`zenity --list --height=300 --title="Elija un grupo" --column="GRUPOS" $lsgrp`
  146.                 cod=`echo $?`
  147.                 if [ $cod == 0 ] #Pulso Aceptar
  148.                 then
  149.                         gksudo delgroup $grp
  150.                         zenity --info --no-wrap --title="$2" --text="El grupo $grp ha sido eliminado"
  151.                        
  152.                         echo "Elimino el grupo $grp" >> /tmp/log
  153.                 elif [ $cod == -1 ] #Error
  154.                 then
  155.                         zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
  156.                 fi
  157.                 ;;             
  158.                        
  159.         8)
  160.                 if [ -e /tmp/log ]
  161.                 then
  162.                        
  163.                         zenity --text-info \
  164.                           --title="LOG" \
  165.                           --filename=/tmp/log
  166.                           --editable 2>/tmp/tmp.txt
  167.                 rm /tmp/log /tmp/tmp.txt
  168.                
  169.            fi
  170.            exit
  171.                 ;;
  172. esac
  173. }
  174. ###################################################################################
  175. #Funcion para usar la barra de progreso
  176. function progress(){
  177.                 (
  178.                 echo "0" ; sleep 1
  179.                 echo "# $1" ; sleep 1
  180.                 echo "25" ; sleep 1
  181.                 echo "75" ; sleep 1
  182.                 echo "100" ; sleep 1
  183.                 echo "# Finalizado"
  184.                
  185.                 ) |
  186.                 zenity --progress \
  187.                 --title="$3" \
  188.                 --text="" \
  189.                 --percentage=0 \
  190.                 --width=300
  191.  
  192.                 if [ "$?" = -1 ] ; then
  193.                 zenity --error \
  194.                   --text="Suma Abortada."
  195.                 fi
  196. }
  197. ###################################################################################
  198. function creargrupo(){
  199.  
  200.         gksudo groupadd $1
  201.         if [ "$?" == 9 ]
  202.         then
  203.                 zenity --warning --title="Groupadd" --text="El grupo \'$1\' ya existe"
  204.                 return 1
  205.         else
  206.                 return 0
  207.         fi
  208. }
  209. ###################################################################################
  210. main
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top