Advertisement
Guest User

Untitled

a guest
Sep 18th, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. #!/bin/bash
  2. # -- UTF 8 --
  3. ##====================================
  4. ## Autor: Emanuel Malfatti
  5. ## Contacto: ejmalfatti@outlook.com
  6. ## Licencia: GPL v2
  7. ## Fecha: 12-01-2015 09:23
  8. ##====================================
  9.  
  10. #==================================
  11. # Function: is_root_user
  12. #
  13. # Determina si el usuario es root, sino no podria ejecutarlo
  14. #
  15. # Variables:
  16. #
  17. # $USER variable del sistema que contiene al usuario que ejecuta el script
  18. #
  19. # crear archivo con los usuario a crear
  20. #
  21. # USO # bash crearuser.sh user.txt
  22. #
  23. #==================================
  24. function is_root_user() {
  25. USER = 'root'
  26. if [ "root" != "root" ]; then
  27. echo "Permiso denegado."
  28. echo "Este script solo puede ser ejecutado por el usuario root"
  29. exit
  30. else
  31. echo
  32. echo "+---------------------------------------+"
  33. echo "| Script creado por Emanuel Malfatti |"
  34. echo "| para la Administración de Usuarios |"
  35. echo "| Licecnia GPL v2 |"
  36. echo "| ejmalfatti@outlook.com |"
  37. echo "+---------------------------------------+"
  38. echo
  39. fi
  40. }
  41.  
  42. #==================================
  43. # Function: check
  44. #
  45. # Comprueba la existencia del fichero, si se paso el parametro, etc
  46. #
  47. # Variables:
  48. #
  49. # $ARGUMENTS contiene el valor de la variable del sistema "$#"
  50. # $FILE contiene la ruta del archivo de texto que pasamos como argumento al script
  51. #==================================
  52. function check(){
  53. ARGUMENTS=$1
  54. FILE=$2
  55.  
  56. # Comprueba si se ha pasado un solo parametro, es decir solamente el archivo de texto con los usuarios
  57. if [ $ARGUMENTS != 1 ]; then
  58. echo
  59. echo "Ud. no ha ingresado ningun argumento. Saliendo..."
  60. exit 1
  61. elif [ -s $FILE ]; then
  62. echo "Ud. ingreso el archivo de texto: $FILE" | tee -a out.log
  63. echo
  64. make_users $FILE #llamo a la funcion que crea usuarios
  65. else
  66. echo "El archivo de texto está vacío. Saliendo..."
  67. exit 1
  68. fi
  69. }
  70.  
  71. #==================================
  72. # Function: make_users
  73. #
  74. # Crea los usuarios que estan dentro del archivo de texto
  75. #
  76. # Variables:
  77. #
  78. # $USERS lee el archivo de texto que tiene los usuarios a crear
  79. # $USERADD contiene el path al binario del comando "useradd"
  80. # $U es una variable (del ciclo for) "temporal" porque va a contener a cada usuario, no a todos, sino uno por uno
  81. #==================================
  82. function make_users(){
  83. USERS=$(cat $1) || exit 1
  84. USERADD=$(which useradd)
  85. for U in $USERS; do
  86. echo "....:::: Creating user=$U password=****** ::::...."
  87. echo
  88. echo "--------------------- $DATE Process of creating users ---------------------" >> out.log
  89. $USERADD -u 0 -o -g 0 --home /home/$U --create-home --shell /bin/bash $U 2>>out.log
  90. if [ $? -eq 0 ];then
  91. echo ">>> Usuario \"$U\" creado correctamente con salida $?" >> out.log
  92. else
  93. echo ">>> Error al crear el usuario \"$U\" saliendo con error $?" >> out.log
  94. fi
  95. make_user_password $U $U
  96. done
  97. }
  98.  
  99. #==================================
  100. # Function: make_user_password
  101. #
  102. # Crea las contraseñas de los usuarios
  103. #
  104. # Variables:
  105. #
  106. # $CHPASSWD contiene el path al binario del comando "chpasswd"
  107. # $USER - contiene el nombres de los usuarios
  108. # $PASS - contiene el password de los usuarios
  109. #==================================
  110. function make_user_password(){
  111. CHPASSWD=$(which chpasswd)
  112. USER=$1
  113. PASS=$2
  114.  
  115. echo "--------------------- $DATE Process of creating password ---------------------" >> out.log
  116. # Una forma de asignarele la password
  117. echo "$USER:$PASS" | $CHPASSWD
  118. if [ $? -eq 0 ];then
  119. echo ">>> Password del usuario \"$U\" creado correctamente con salida $?" >> out.log
  120. else
  121. echo ">>> Error al crear la contraseña del usuario \"$U\" saliendo con error $?" >> out.log
  122. fi
  123. }
  124.  
  125. # Bloque principal llamando a las funciones
  126.  
  127. DATE=$(echo "`date` - ")
  128. is_root_user
  129. check $# $1
  130.  
  131. # FIN DEL SCRIPT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement