Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # -- UTF 8 --
- ##====================================
- ## Autor: Emanuel Malfatti
- ## Contacto: ejmalfatti@outlook.com
- ## Licencia: GPL v2
- ## Fecha: 12-01-2015 09:23
- ##====================================
- #==================================
- # Function: is_root_user
- #
- # Determina si el usuario es root, sino no podria ejecutarlo
- #
- # Variables:
- #
- # $USER variable del sistema que contiene al usuario que ejecuta el script
- #
- # crear archivo con los usuario a crear
- #
- # USO # bash crearuser.sh user.txt
- #
- #==================================
- function is_root_user() {
- USER = 'root'
- if [ "root" != "root" ]; then
- echo "Permiso denegado."
- echo "Este script solo puede ser ejecutado por el usuario root"
- exit
- else
- echo
- echo "+---------------------------------------+"
- echo "| Script creado por Emanuel Malfatti |"
- echo "| para la Administración de Usuarios |"
- echo "| Licecnia GPL v2 |"
- echo "| ejmalfatti@outlook.com |"
- echo "+---------------------------------------+"
- echo
- fi
- }
- #==================================
- # Function: check
- #
- # Comprueba la existencia del fichero, si se paso el parametro, etc
- #
- # Variables:
- #
- # $ARGUMENTS contiene el valor de la variable del sistema "$#"
- # $FILE contiene la ruta del archivo de texto que pasamos como argumento al script
- #==================================
- function check(){
- ARGUMENTS=$1
- FILE=$2
- # Comprueba si se ha pasado un solo parametro, es decir solamente el archivo de texto con los usuarios
- if [ $ARGUMENTS != 1 ]; then
- echo
- echo "Ud. no ha ingresado ningun argumento. Saliendo..."
- exit 1
- elif [ -s $FILE ]; then
- echo "Ud. ingreso el archivo de texto: $FILE" | tee -a out.log
- echo
- make_users $FILE #llamo a la funcion que crea usuarios
- else
- echo "El archivo de texto está vacío. Saliendo..."
- exit 1
- fi
- }
- #==================================
- # Function: make_users
- #
- # Crea los usuarios que estan dentro del archivo de texto
- #
- # Variables:
- #
- # $USERS lee el archivo de texto que tiene los usuarios a crear
- # $USERADD contiene el path al binario del comando "useradd"
- # $U es una variable (del ciclo for) "temporal" porque va a contener a cada usuario, no a todos, sino uno por uno
- #==================================
- function make_users(){
- USERS=$(cat $1) || exit 1
- USERADD=$(which useradd)
- for U in $USERS; do
- echo "....:::: Creating user=$U password=****** ::::...."
- echo
- echo "--------------------- $DATE Process of creating users ---------------------" >> out.log
- $USERADD -u 0 -o -g 0 --home /home/$U --create-home --shell /bin/bash $U 2>>out.log
- if [ $? -eq 0 ];then
- echo ">>> Usuario \"$U\" creado correctamente con salida $?" >> out.log
- else
- echo ">>> Error al crear el usuario \"$U\" saliendo con error $?" >> out.log
- fi
- make_user_password $U $U
- done
- }
- #==================================
- # Function: make_user_password
- #
- # Crea las contraseñas de los usuarios
- #
- # Variables:
- #
- # $CHPASSWD contiene el path al binario del comando "chpasswd"
- # $USER - contiene el nombres de los usuarios
- # $PASS - contiene el password de los usuarios
- #==================================
- function make_user_password(){
- CHPASSWD=$(which chpasswd)
- USER=$1
- PASS=$2
- echo "--------------------- $DATE Process of creating password ---------------------" >> out.log
- # Una forma de asignarele la password
- echo "$USER:$PASS" | $CHPASSWD
- if [ $? -eq 0 ];then
- echo ">>> Password del usuario \"$U\" creado correctamente con salida $?" >> out.log
- else
- echo ">>> Error al crear la contraseña del usuario \"$U\" saliendo con error $?" >> out.log
- fi
- }
- # Bloque principal llamando a las funciones
- DATE=$(echo "`date` - ")
- is_root_user
- check $# $1
- # FIN DEL SCRIPT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement