Administración de Usuarios y Procesos en Shell Scripting Linux
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 6,38 KB
Funciones de Administración de Sistema en Bash
El siguiente script en Bash define varias funciones esenciales para la administración de usuarios, procesos y directorios en un sistema Linux.
Función: Consulta de Usuarios (`usuarios`)
Esta función proporciona un menú interactivo para consultar información detallada sobre los usuarios y grupos del sistema.
Menú de Usuarios del Sistema
echo "**BIENVENIDOS A USUARIOS DEL SISTEMA**"- Usuarios con posible sesión iniciada en el sistema
- Todos los Usuarios del Sistema
- Usuarios con sesión iniciada (logueados)
- Grupos
- Contraseñas cifradas
- Volver al menú principal
- Salir
echo "Introduce una opción:"
read opu
clear
case $opu inOpciones del Menú de Usuarios
1. Usuarios con posible sesión iniciada en el sistema
Muestra el usuario root y aquellos usuarios cuyo UID (Identificador de Usuario) se encuentra en un rango específico (1000 a 1099), asumiendo que estos son usuarios con posible acceso interactivo.
1) echo "USUARIOS CON POSIBLE SESIÓN INICIADA EN EL SISTEMA:"
cat /etc/passwd | grep 0:0 | cut -d ":" -f1 # Para mostrar a root
id=1000
while [ $id -ne 1100 ]
do # El identificador nos permite ver los usuarios con posible sesión iniciada, ya que todos tienen un número mayor a 1000. También podríamos hacer un grep con /bin/bash para que nos lo mostrara, es otra posibilidad.
cat /etc/passwd | grep $id | cut -d ":" -f1
id=`expr $id + 1`
done
volver;;2. Todos los Usuarios del Sistema
2) echo "TODOS LOS USUARIOS DEL SISTEMA"
cat /etc/passwd | cut -d ":" -f1
volver;;3. Usuarios con sesión iniciada (Logueados)
3) echo "USUARIOS LOGUEADOS:"
who | cut -d " " -f1
volver;;4. Grupos de Usuarios
4) echo "GRUPOS DE USUARIOS"
cat /etc/group | cut -f -1,4 -d ":"
volver;;5. Contraseñas Cifradas
Permite consultar la contraseña cifrada de un usuario específico desde /etc/shadow, verificando primero si el directorio /home/<usuario> existe.
5)
echo "Contraseñas Cifradas"
echo "Introduce el usuario del que quieres ver la contraseña"
read cifra
if [ -d /home/$cifra ]
then
cat /etc/shadow | grep $cifra | cut -d ":" -f2
else
echo "¡¡¡USUARIO INCORRECTO!!!"
fi
volver;;6. Volver al menú principal
6) menu;;7. Salir
7) salir;;Opción Incorrecta
*) clear
echo "Opción introducida incorrecta"
usuarios;;
esac
}Función: Consulta de Procesos (`procesos`)
Permite listar los procesos activos asociados a un usuario específico utilizando el comando ps U.
function procesos() {
clear
echo "**BIENVENIDO A PROCESOS DE LOS USUARIOS**"
echo "Introduce el usuario del que quieres ver los procesos"
read procusuario
if [ -d /home/$procusuario ] || [ -d /$procusuario ] # La carpeta del root está en /root, no en /home/root, por eso se incluye la otra condición.
then
ps U $procusuario
else
echo "El usuario introducido no existe"
fi
volver
}Función: Consulta de Directorios (`directorios`)
Muestra el contenido detallado (ls -l) del directorio principal del usuario, manejando el caso especial del usuario root.
function directorios() {
echo "BIENVENIDO A DIRECTORIOS DE LOS USUARIOS"
echo "¿De qué usuario desea ver el contenido de su directorio?"
read direcusuario
if [ -d /home/$direcusuario ]
then
ls -l /home/$direcusuario
elif [ -d /$direcusuario ] # Esto se hace para manejar el caso del usuario root.
then
ls -l /$direcusuario
else
echo "El usuario introducido no existe"
fi
volver
}Función: Gestión Avanzada de Usuarios (`gestion`)
Esta función permite realizar modificaciones y mantenimiento en las cuentas de usuario del sistema.
Menú de Gestión de Usuarios
echo "**BIENVENIDO A GESTIÓN DE USUARIOS**"- Agregar nuevo usuario
- Borrar usuario
- Modificar usuario
- Cambiar contraseña
- Configuración por defecto
- Volver al menú principal
- Salir
echo "Introduce una opción:"
read opg
case $opg inOpciones de Gestión
1. Agregar Nuevo Usuario
1) clear
echo "**AGREGAR NUEVO USUARIO**"
echo "Introduce el nombre que quiere darle al usuario"
read newusuario
adduser $newusuario
cd /home/$newusuario # Para crear el directorio y que no dé error al comprobar usuario
echo "USUARIO $newusuario HA SIDO CREADO"
volver;;2. Borrar Usuario
2) clear
echo "**BORRAR USUARIO**"
echo "Introduce el nombre del usuario que desea borrar"
read dropusuario
if [ -d /home/$dropusuario ]
then
userdel $dropusuario
echo "USUARIO $dropusuario HA SIDO BORRADO"
else
echo "El usuario introducido no existe"
fi
volver;;3. Modificar Usuario
3) clear
echo "**MODIFICAR USUARIO**"
echo "Introduce el usuario a modificar"
read modusuario
if [ -d /home/$modusuario ]
then
echo "Introduce la opción -p (password), -l (login), etc."
read modop
echo "Introduce la modificación"
read mod
usermod $modop $mod $modusuario
echo "USUARIO $modusuario HA SIDO MODIFICADO"
volver
else
echo "¡¡USUARIO INCORRECTO!!"
gestion
fi;;4. Cambiar Contraseña
4) clear
echo "**CAMBIAR CONTRASEÑA**"
echo "Introduce el nombre del usuario al que deseas cambiar la contraseña"
read passusuario
if [ -d /home/$passusuario ]
then
passwd $passusuario
else
echo "El usuario introducido no existe"
fi
volver;;5. Configuración por Defecto
5) clear
echo "MODIFICAR CONFIGURACIÓN"
echo "1. Mostrar configuración"
echo "2. Cambiar configuración"
echo "Introduce una opción"
read opmod
if [ $opmod -eq 1 ]
then
/usr/sbin/useradd -D
elif [ $opmod -eq 2 ]
then
sudo nano /etc/default/useradd
else
echo "¡¡OPCIÓN INCORRECTA!!"
fi
volver;;6. Volver al menú principal
6) menu;;7. Salir
7) salir;;Opción Incorrecta
*) clear
echo "¡¡OPCIÓN INCORRECTA!!"
gestion;;
esac
}