Skip to content

Instantly share code, notes, and snippets.

@trejo08
Created October 26, 2016 09:57
Show Gist options
  • Save trejo08/dcfba975f4de556a5320e9b0d96382d1 to your computer and use it in GitHub Desktop.
Save trejo08/dcfba975f4de556a5320e9b0d96382d1 to your computer and use it in GitHub Desktop.
#!/bin/bash
RED='\033[1;31m';
GREEN='\033[1;32m';
NC='\033[0m';
function mainMenu {
while true; do
clear;
echo '';
echo '==================================[Menu Principal]==================================';
echo '';
echo 'Bienvenido, seleccione una opcion:';
echo '1 ===> informacion de red';
echo '2 ===> informacion del sistema';
echo '3 ===> Creacion de usuarios';
echo '4 ===> Administracion de grupos';
echo '0 ===> salir';
echo '===================================================================================';
echo '';
echo -n '[Seleccionar:] '
read menuOption;
case $menuOption in
1)
networkInfo
;;
2)
systemInfo
false;
;;
3)
usersCreation
false;
;;
4)
groupsManagement
false;
;;
0)
leave
false;
;;
*)
echo '';
echo '------> [selecccione una opcion valida]';
echo '';
sleep 1;
esac
done
}
function networkInfo {
while true; do
clear;
echo '';
echo '========================[Informacion de Red]========================';
echo '';
echo 'Seleccione una opcion';
echo '1 ===> ver lista de interfaces';
echo '2 ===> obtener informacion de interfaz';
echo '3 ===> obtener ip publica';
echo '4 ===> regresar al menu principal';
echo '0 ===> salir';
echo '====================================================================';
echo '';
echo -n '[Seleccionar:] '
read netOpt;
case $netOpt in
1)
echo '========================[Lista de interfaces]=======================';
ifconfig | awk '{ print $1 }' | grep 'eth\|wlan\|lo\|en';
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
2)
echo '======================[Informacion de interfaz]=====================';
interfaces=$(ifconfig | awk '{ print $1}' | grep 'eth\|wlan\|lo\|en' | awk '{ printf "|" $1 "|" }');
echo -n "Por favor ingrese la interfaz de la que desea obtener informacion: $(printf $interfaces): ";
read interfaz;
ifconfig $interfaz;
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
3)
echo '=======================[Obteniendo IP Publica]======================';
echo $(curl ifconfig.co);
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
4)
mainMenu
;;
0)
leave
;;
*)
echo '';
echo '------> [selecccione una opcion valida]';
echo '';
sleep 1;
esac
done
}
function systemInfo {
while true; do
clear;
echo '';
echo '========================[Informacion del sistema]========================';
echo '';
echo 'Seleccione una opcion';
echo '1 ===> Tamaño de disco duro';
echo '2 ===> Espacio disponible en disco duro';
echo '3 ===> Tipo de particion';
echo '4 ===> regresar al menu principal';
echo '0 ===> salir';
echo '====================================================================';
echo '';
echo -n '[Seleccionar:] ';
read sysOpt;
case $sysOpt in
1)
df -h | grep /dev/sd | awk -v red="$(tput setaf 1)" -v green="$(tput setaf 2)" -v noc="$(tput sgr0)" '{ print "Disco: [" red $1 noc "] tamaño: [" green $2 noc "]" }';
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
2)
df -h | grep /dev/sd | awk -v red="$(tput setaf 1)" -v green="$(tput setaf 2)" -v noc="$(tput sgr0)" '{ print "Disco: [" red $1 noc "] Espacio disponible: [" green $4 noc "]"}';
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
3)
df -T | grep /dev/sd | awk -v red="$(tput setaf 1)" -v green="$(tput setaf 2)" -v noc="$(tput sgr0)" '{ print "Disco: [" red $1 noc "] Espacio disponible: [" green $2 noc "]"}';
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
4)
mainMenu
;;
0)
leave
;;
*)
echo '';
echo '------> [selecccione una opcion valida]';
echo '';
sleep 1;
;;
esac
done
}
function usersCreation {
while true; do
clear;
echo '';
echo '========================[Informacion del sistema]========================';
echo '';
echo 'Seleccione una opcion';
echo '1 ===> Crear un usuario';
echo '2 ===> Cambiar contraseña de usuario';
echo '3 ===> Agregar comentario a usuario';
echo '4 ===> regresar al menu principal';
echo '0 ===> salir';
echo '====================================================================';
echo '';
echo -n '[Seleccionar:] ';
read userOpt;
case $userOpt in
1)
echo -n "$(printf $RED) Esta opcion requiere permisos de administrador[root] $(printf $NC), desea continuar ?[1 = si, 2 = no] ";
read continuar;
if [[ $continuar == 1 ]]; then
echo '===============================[Creacion de nuevo usuario]================================'
echo -n 'Por favor ingrese un nombre para el nuevo usuario sin espacios, ejemplo:[usuario1]: ';
read usuario;
sudo useradd $usuario -d /home/$usuario -s /bin/bash -m
echo "usuario $(printf $usuario) creado";
fi
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
2)
echo -n "$(printf $RED) Esta opcion requiere permisos de administrador[root] $(printf $NC), desea continuar ?[1 = si, 2 = no]";
read continuar;
if [[ $continuar == 1 ]]; then
echo '===============================[Actualizacion de contraseña]==============================='
echo -n 'Por favor ingrese un nombre para el usuario sin espacios, ejemplo:[usuario1]: ';
read usuario;
sudo passwd $usuario
echo "contraseña del usuario $(printf $usuario) actualizada";
fi
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
3)
echo -n "$(printf $RED) Esta opcion requiere permisos de administrador[root] $(printf $NC), desea continuar ?[1 = si, 2 = no]";
read continuar;
if [[ $continuar == 1 ]]; then
echo '==================================[Definir comentario de usuario]==================================';
echo -n 'Por favor ingrese un nombre para el usuario sin espacios, ejemplo:[usuario1]: ';
read usuario;
echo '';
echo -n 'Por favor ingresar comentario de usuario: '
read comentario;
sudo usermod -c $comentario $usuario
echo "contraseña del usuario $(printf $usuario) actualizada";
fi
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
4)
mainMenu
;;
0)
leave
;;
*)
echo '';
echo '------> [selecccione una opcion valida]';
echo '';
sleep 1;
;;
esac
done
}
function groupsManagement {
while true; do
clear;
echo '';
echo '========================[Informacion del sistema]========================';
echo '';
echo 'Seleccione una opcion';
echo '1 ===> Añadir un grupo';
echo '2 ===> Añadir un usuario a un grupo';
echo '3 ===> Ver grupos de un usuario';
echo '4 ===> regresar al menu principal';
echo '0 ===> salir';
echo '====================================================================';
echo '';
echo -n '[Seleccionar:] ';
read userOpt;
case $userOpt in
1)
echo -n "$(printf $RED) Esta opcion requiere permisos de administrador[root] $(printf $NC), desea continuar ?[1 = si, 2 = no] ";
read continuar;
if [[ $continuar == 1 ]]; then
echo '===============================[Creacion de nuevo grupo]================================'
echo -n 'Por favor ingrese un nombre para el nuevo grupo sin espacios, ejemplo:[grupo1]: ';
read grupo;
sudo groupadd $grupo;
echo "grupo $(printf $grupo) creado";
fi
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
2)
echo -n "$(printf $RED) Esta opcion requiere permisos de administrador[root] $(printf $NC), desea continuar ?[1 = si, 2 = no]";
read continuar;
if [[ $continuar == 1 ]]; then
echo '===============================[Agregar usuario a Grupo]==============================='
echo -n 'Por favor ingrese el nombre de usuario sin espacios, ejemplo:[usuario1]: ';
read usuario;
echo -n 'Por favor ingrese el nombre de grupo sin espacio, ejemplo: [grupo1]';
read grupo;
sudo usermod -aG $grupo $usuario;
echo "Usuario $(printf $usuario) añadido al grupo $(printf $grupo)";
fi
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
3)
echo '==================================[Definir comentario de usuario]==================================';
echo -n 'Por favor ingrese el nombre del usuario sin espacios, ejemplo:[usuario1]: ';
read usuario;
groups $usuario;
echo '====================================================================';
echo 'presione [ENTER] para continuar';
read;
;;
4)
mainMenu
;;
0)
leave
;;
*)
echo '';
echo "$(printf $RED) [selecccione una opcion valida] $(printf $NC)";
echo '';
sleep 1;
;;
esac
done
}
function leave {
echo '';
echo 'Adios...';
sleep 1;
exit;
}
mainMenu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment