elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Error en script y dudas sobre grep.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en script y dudas sobre grep.  (Leído 1,672 veces)
Vehlore

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Error en script y dudas sobre grep.
« en: 9 Junio 2015, 20:45 pm »

Muy buenas a todos, soy nuevo en esta comunidad y me he registrado porque veo que hay mucho entendido de scripting.  :D

La cuestión es que estoy iniciándome en esto de scriptear y me parece entretenido y bastante interesante, por lo que me he metido con algunos ejercicios básicos para coger carrerilla. Aquí viene el quid de la cuestión, tengo dos ejercicios, en uno de ellos tengo que realizar un script que cree un usuario con su correspondiente grupo, contraseña y shell, cosa que he conseguido. Este es el resultado:

Código
  1. #!/bin/bash
  2.  
  3. while [ continuar=S ]
  4. do
  5.  
  6. read -p "Introduce el nombre de usuario a crear: " usuario
  7. if [ -z $usuario ]
  8. then
  9. echo "No se ha introducido ningun nombre de usuario, terminando tarea."
  10. sleep 3s; exit
  11. else
  12. if [ `grep -o "^$usuario" /etc/passwd` -n 0 ]
  13. then
  14. echo "Usuario introducido y creado correctamente."
  15. useradd $usuario
  16. else
  17. echo "El usuario ya existe en el sistema, terminando tarea."
  18. sleep 3s; exit
  19. fi
  20. fi
  21. read -p "Introduce el nombre del grupo al que pertenecera el usuario: " grupo
  22. if [ -z $grupo ]
  23. then
  24. echo "No se ha introducido un grupo, se ha asignado a $usuario al grupo 'users'."
  25. usermod -g users $usuario
  26. else
  27. if [ `grep -o "^$grupo" /etc/group` -n 0 ]
  28. then
  29. echo "Grupo creado y asignado correctamente."
  30. groupadd $grupo
  31. usermod -g $grupo $usuario
  32. else
  33. echo "Se ha asignado a $usuario al grupo $grupo."
  34. usermod -g $grupo $usuario
  35. fi
  36.  
  37.         fi
  38. read -p "Introduce la shell que utilizara el usuario: "
  39. if [ -z $shell ]
  40. then
  41. echo "No se ha introducido una shell, se ha asignado al usuario la shell '/bin/bash'."
  42. usermod -s /bin/bash $usuario
  43. else
  44. echo "Se ha asignado al usuario la shell $shell."
  45. usermod -s $shell $usuario
  46. fi
  47. read -p "Introduce la password para el usuario: " password
  48. if [ -z $password ]
  49. then
  50. echo "No se ha introducido ninguna password, el usuario estara bloqueado hasta que se le asigne una."
  51. else
  52. echo "Password de usuario creada correctamente."
  53. usermod -p `mkpasswd -m sha-512 $password` $usuario
  54. fi
  55. read -p "¿Continuar agregando usuarios? S/N: " continuar
  56.  
  57. done
  58.  

Hasta aquí todo perfecto, el script funciona perfectamente y sin errores, hasta que llega al final del script y el bucle while no se aplica. Es decir, lo que pretendo es que al llegar al final, el usuario responda a una pregunta con S o N y que en caso de ser S el script vuelva al inicio. Supongo que hay algo mal en el comando o en las variables que he puesto, pero no logro encontrar el fallo.  :-\

Por otro lado, en el segundo ejercicio me piden lo siguiente:

Citar
Crear un script que reciba un parámetro, que será un fichero de texto con varias líneas  dentro de él y cada una de las líneas con dos campos separados por coma: un usuario y un grupo. El script debe comprobar línea por línea si el usuario existe en el sistema (y si existe indicarlo) y en caso contrario, crearlo e introducirlo en el grupo indicado a su lado. Además, debe comprobar que se ingresa el parámetro inicial (el nombre del fichero) y que el parámetro indicado existe en el sistema.


Había pensado usando comando grep y algún que otro read con condiciones para los casos en los que encuentre o no el usuario, pero me lío y no sé por donde empezar.

Agradezco de antemano la ayuda que me podáis aportar, gracias  ;D


« Última modificación: 10 Junio 2015, 07:11 am por Eleкtro » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[DUDAS] Todas las dudas sobre RadASD + MASM aqui « 1 2 3 »
ASM
AleX Inc. 23 20,855 Último mensaje 5 Julio 2010, 11:58 am
por Eternal Idol
Dudas con con partes de mi script [Bash]
Scripting
Afsoon 4 2,753 Último mensaje 1 Mayo 2010, 22:01 pm
por leogtz
[Bash] Dudas con script
Scripting
aaronduran2 2 3,713 Último mensaje 11 Septiembre 2010, 02:05 am
por aaronduran2
grep
Scripting
andaluz 2 3,516 Último mensaje 27 Marzo 2011, 19:37 pm
por andaluz
Dudas sobre un error
Programación C/C++
Qtcreatorman 1 1,434 Último mensaje 28 Abril 2011, 18:25 pm
por Acermax
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines