Instantly share code, notes, and snippets.
-
Star
0
(0)
You must be signed in to star a gist -
Fork
0
(0)
You must be signed in to fork a gist
-
Save trejo08/dcfba975f4de556a5320e9b0d96382d1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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