Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- sleep 1
- echo
- echo "*****************************************************************************"
- echo "* *"
- echo "* Script para gestionar usuarios a traves de un GUI >> GESTUSERS << *"
- echo "* *"
- echo "* Fecha y hora de la ejecución del Script *"
- echo "* `date +%d-%m-%Y` - `date +%H:%M:%S` *"
- echo "* *"
- echo "* Puedes modificarlo y/o distribuirlo bajo los términos de la licencia GPL *"
- echo "* *"
- echo "* Autor: Alejandro Alcalde (algui91) - Mar. '10 *"
- echo "* *"
- echo "*****************************************************************************"
- sleep 1
- # Gestion de usuarios grafica
- function main(){
- while [ true ]
- do
- opcion=`zenity --list --height=300 --radiolist \
- --title="Elija una opcion" \
- --column="" --column="Opcion" \
- "FALSE" "1 Crear Usuario con home" \
- "TRUE" "2 Crear grupo" \
- "FALSE" "3 Añadir usuario/Grupo" \
- "FALSE" "4 Eliminar Usuario/Grupo" \
- "FALSE" "5 Eliminar Usuario" \
- "FALSE" "6 Mostrar usuarios de un grupo" \
- "FALSE" "7 Eliminar grupo" \
- "FALSE" "8 Salir"`
- if [ "$?" == 1 ] ; then seleccion 7 ; fi #Si se pulsa cancelar y cerrar, lo evio al log
- seleccion `echo $opcion | cut -c 1` "$opcion" # Corto la opcion para quedarme solo con el numeros
- done
- }
- ###################################################################################
- function seleccion(){
- case $1 in
- 1)
- user=`zenity --entry --width=300 --text "Nombre del usuario" --title "$2"`
- cod=`echo $?`
- if [ $cod == 0 ] #Pulso aceptar o cerrar
- then
- sudo adduser $user
- if [ "$?" == 1 ] # si la salida de adduser es 1, es que el usuario existe
- then
- zenity --warning --title="AddUser" --text="El usuario $user ya existe"
- else
- echo "creo el usuario $user" >> /tmp/log #Almaceno las operaciones del usuario
- progress "Creando usuario" $user "$2"
- fi
- elif [ $cod == -1 ] #Error
- then
- zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
- fi
- ;;
- 2)
- group=`zenity --entry --width=300 --text "Nombre del grupo" --title "$2"` #Recogo el nombre del nuevo grupo
- cod=`echo $?`
- if [ $cod == 0 ] #Pulso aceptar o cerrar
- then
- creargrupo "$group" #llamo a mi funcion crear grupo
- if [ "$?" == 0 ] # si creargrupo devuevle 0, todo correcto
- then
- progress "Creando grupo" $group "$2"
- echo "creo el grupo $group" >> /tmp/log
- fi
- elif [ $cod == -1 ] #Error
- then
- zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
- fi
- ;;
- 3)
- listaUser=`cat /etc/passwd | cut -d: -f1 | sort` #extraigo del archivo passwd una lista de los usuarios ordenada
- user=`zenity --list --height=300 --title="Elija un usuario" --column="USER" $listaUser` #Meto los usuarios en el list
- cod=`echo $?`
- if [ $cod == 0 ] #Pulso Aceptar
- then
- lsgrp=`cat /etc/group | cut -d: -f1 | sort`
- grp=`zenity --list --height=300 --title="Elija un grupo" --column="GRUPOS" $lsgrp`
- 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
- zenity --info --no-wrap --title="$2" --text="Añadió a \'$user\' al grupo $grp"
- echo "Añadió a $user al grupo $grp" >> /tmp/log
- elif [ $cod == -1 ] #Error
- then
- zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
- fi
- ;;
- 4)
- listaUser=`cat /etc/passwd | cut -d: -f1 | sort`
- user=`zenity --list --height=300 --title="Elija un usuario" --column="USER" $listaUser`
- cod=`echo $?`
- if [ $cod == 0 ] #Pulso Aceptar
- then
- lsgrp=`cat /etc/group | cut -d: -f1 | sort`
- grp=`zenity --list --height=300 --title="Elija un grupo" --column="GRUPOS" $lsgrp`
- sudo deluser $user $grp # pasandole a deluser un usuario y un grupo, borra al usuario del grupo
- zenity --info --no-wrap --title="$2" --text="Eliminó a \'$user\' del grupo $grp"
- echo "Eliminó a $user del grupo $grp" >> /tmp/log
- elif [ $cod == -1 ] #Error
- then
- zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
- fi
- ;;
- 5)
- listaUser=`cat /etc/passwd | cut -d: -f1 | sort`
- user=`zenity --list --height=300 --title="Elija una opcion" --column="USER" $listaUser`
- cod=`echo $?`
- if [ $cod == 0 ] #Pulso aceptar o cerrar
- then
- zenity --question --title="deluser" --text="Borrar home de $user?"
- if [ $? == 0 ]
- then
- sudo deluser $user --remove-home
- echo "Elimino el usuario $user con su home" >> /tmp/log
- progress "Eliminando Usuario" $user "$2"
- else
- sudo deluser $user
- echo "Elimino el usuario $user y no su home" >> /tmp/log
- progress "Eliminando Usuario" $user "$2"
- fi
- elif [ $cod == -1 ] #Error
- then
- zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
- fi
- ;;
- 6)
- lsgrp=`cat /etc/group | cut -d: -f1 | sort`
- grp=`zenity --list --height=300 --title="Elija un grupo" --column="GRUPOS" $lsgrp`
- cod=`echo $?`
- if [ $cod == 0 ] #Pulso Aceptar
- then
- member=`cat /etc/group | grep $grp: | cut -d: -f4 | sort` #Localizo el nombre del grupo con grep $grp: y corto los miembros
- zenity --info --no-wrap --title="$2" --text="El grupo $grp tiene de miembros: $member"
- echo "Listó los miembros de $grp" >> /tmp/log
- elif [ $cod == -1 ] #Error
- then
- zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
- fi
- ;;
- 7)
- lsgrp=`cat /etc/group | cut -d: -f1 | sort`
- grp=`zenity --list --height=300 --title="Elija un grupo" --column="GRUPOS" $lsgrp`
- cod=`echo $?`
- if [ $cod == 0 ] #Pulso Aceptar
- then
- gksudo delgroup $grp
- zenity --info --no-wrap --title="$2" --text="El grupo $grp ha sido eliminado"
- echo "Elimino el grupo $grp" >> /tmp/log
- elif [ $cod == -1 ] #Error
- then
- zenity --error --no-wrap --title="Error" --text="Ocurrio un error"
- fi
- ;;
- 8)
- if [ -e /tmp/log ]
- then
- zenity --text-info \
- --title="LOG" \
- --filename=/tmp/log
- --editable 2>/tmp/tmp.txt
- rm /tmp/log /tmp/tmp.txt
- fi
- exit
- ;;
- esac
- }
- ###################################################################################
- #Funcion para usar la barra de progreso
- function progress(){
- (
- echo "0" ; sleep 1
- echo "# $1" ; sleep 1
- echo "25" ; sleep 1
- echo "75" ; sleep 1
- echo "100" ; sleep 1
- echo "# Finalizado"
- ) |
- zenity --progress \
- --title="$3" \
- --text="" \
- --percentage=0 \
- --width=300
- if [ "$?" = -1 ] ; then
- zenity --error \
- --text="Suma Abortada."
- fi
- }
- ###################################################################################
- function creargrupo(){
- gksudo groupadd $1
- if [ "$?" == 9 ]
- then
- zenity --warning --title="Groupadd" --text="El grupo \'$1\' ya existe"
- return 1
- else
- return 0
- fi
- }
- ###################################################################################
- main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement