Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: -=[ §ÂßÂÑÐØ ]=- en 15 Diciembre 2011, 10:47 am



Título: Script de novato.....
Publicado por: -=[ §ÂßÂÑÐØ ]=- en 15 Diciembre 2011, 10:47 am
Buenas...estoy empezando con shell bash y no me aclaro en este script...exactamente no se como listar usuarios primarios y secundarios...y por lo tanto no se bien como empezar mi ejercicio....

Antes de nada muchisimas gracias de antemano...


Crear un script que tenga el siguiente comportamiento:
•   Muestra por pantalla y de forma recurrente un menú con cuatro opciones posibles:
•   a) Mostrar usuarios de grupo (primarios): Seleccionada esta opción, el script debe pedir el nombre de un grupo e informar por pantalla de los nombres de los usuarios que pertenecen a ese grupo como grupo primario.
•   b) Mostrar usuarios de grupo (secundarios): Seleccionada esta opción, el script debe pedir el nombre de un grupo e informar por pantalla de los nombres de los usuarios que pertenecen a ese grupo como grupo secundario.
•   c) Mostrar todos los usuarios de un grupo: mostrará los usuarios de los dos casos anteriores.
•   d) Salir: El script acaba su ejecución.
•   Los nombres de los usuarios deben mostrarse uno por línea si fuese posible.


Título: Re: Script de novato.....
Publicado por: -=[ §ÂßÂÑÐØ ]=- en 15 Diciembre 2011, 11:05 am
Perdonen se me olvido ponerle el codigo de lo que se...

Citar
#!/bin/bash
# determina usuarios en un grupo
opc=0
while [ $opc -ne 4 ];do
echo MENU
echo 1.-Mostrar usuarios de un grupo primarios
echo 2.-Mostrar usuarios de grupo secundarios
echo 3.-Mostrar todos los usuarios de un grupo
echo 4.-Salir
read opc

case $opc in
   1)
      

   ;;
   2)


   ;;
   3)
      echo Introduce el grupo del que quieres listar los usuarios
      read grupo
      existe=`cat /etc/group | grep "^$grupo"`
      if [ ! $existe ];then
           echo "El grupo $grupo no existe."
           exit
      fi
      gid=`echo $existe | cut -d: -f3`

      echo Los usuarios del grupo $grupo son:
      echo -----
      for i in `cat /etc/passwd | cut -d: -f1,4 | grep :$gid$ | cut -d: -f1`;do
         echo $i
      done 
      echo -----
   ;;
   4)
      echo Adios
   ;;
esac
done