Advertisement
sflibre

crear_Usuarios

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