#!
/bin/bash
# Funcion para crear un usuario y su estructura de directorios
function crear_usuario() {
nombre=$1
apellido=$2
nombre_usuario=$(echo "$nombre" | cut -c1 | tr '[:lower:]' '[:upper: ]')$( “$apellido” | tr '[:upper:]'
'[:lower:]')
contrasenia=$(echo "$nombre" | cut -c1 tr '[:lower:]' '[:upper:]')$(echo "$apellido" | cut -c1 | tr
'[:upper: ]' '[:lower:]')#123456
# Verificar si el usuario ya existe
if id "$nombre_usuario" &>/dev/null; then
# Guardar existencia del usuario
echo "$nombre:$apellido:$nombre_usuario ya existe" >> cre_usuarios.log
else
#Crear el usuario
useradd -m "$nombre_usuario"
echo "$nombre_usuario:$contrasenia" | chpasswd
echo "Usuario $nombre_usuario creado con exito."
# Forzar cambio de contrasenia en el primer inicio de sesion
chage -d "$nombre_usuario"
fi
# Funcion para eliminar usuarios
function eliminar_usuario() {
usuario=$1
if id "Şusuario" &>/dev/null; then
userdel -r "$usuario"
clear
echo "El usuario y sus directorios se han eliminado con exito"
else
clear
echo "El usuario "$usuario" no existe"
fi
#Funcion para asignar un usuario a un grupo
function asignar_a_grupo() {
usuario=$1
grupo=$2
#Verifica si el usuario y el grupo existen
if id "Susuario" &>/dev/null && getent group "$grupo" &>/dev/null; then
#Asigna usuario al grupo
usermod -aG "$grupo" "$usuario"
echo "Usuario $usuario asignado al grupo $grupo."
else
echo "El usuario o el grupo no existen."
fi
#Funcion para asignar usuarios desde un archivo
function asignar_usuarios_a_grupo() {
grupo=$1
archivo=$2
cant_Usuarios=$(wc -1 <./$archivo)
#Verifica si el grupo existe
if getent group "Sgrupo" &>/dev/null; then
for linea in $(seq $cant_Usuarios)
do
usuario=$(sed -n "$linea p" ./$archivo | cut -d ":" -f 3)
asignar_a_grupo "Susuario" "$grupo"
done
else
echo "Error: El grupo no existe."
fi
#Verifica si se le proporcionan 2 parametros y crea el usuario
if [ $# -eq 2 ]; then
mombre=$1
apellido=$2
crear_usuario "$nombre" "$apellido"
exit 0
fi
#Verifica si se le proporciona 1 parametro y crea los usuarios segun el archivo
if [ $# -eq 1 ]; then
archivo-$1
cant_usuario=$(wc -1 < ./$archivo)
for linea in $(seq $cant_usuario)
do
nombre=$(sed -n "$linea p" ./$archivo cut -d " " -f 1)
apellido=$(sed -n "$linea p" ./$archivo | cut -d " " -f 2)
crear_usuario "Snombre" "$apellido"
done
echo "Usuarios creados"
exit 0
fi
#Menu principal
function mostrar_menu() {
echo "------- Menu Principal-------"
echo "1. Crear usuario"
echo "2. Asignar usuario a grupo"
echo "3. Asignar conjunto de usuarios a grupo desde archivo"
echo "4. Eliminar usuario"
echo "5. Salir"
echo "-----------------------------"
while true; do
mostrar_menu
read -p "Ingrese una opcion (numeros): " opcion
case $opcion in
1)
read -p "Ingrese nombre: " nombre
read -p "Ingrese apellido: "apellido
if [ -z "$nombre" ] || [ -z "$apellido" ]; then
echo "Error: datos faltantes"
else
crear usuario "$nombre" "$apellido"
fi
;;
2)
read -p "Ingrese nombre de usuario: usuario
read -p "Ingrese nombre de grupo: grupo
if [ -z "$usuario" ] || [ -z "$grupo" ]; then
echo "Error: datos faltantes"
else
asignar_a_grupo "Susuario" "$grupo"
fi
;;
3)
read -p "Ingrese nombre de grupo: grupo
read -p "Ingrese nombre de archivo de usuarios: " archivo
if [ -z "$grupo" ] || [ -z "$archivo" ]; then
echo "Error: datos faltantes"
else
asignar_usuarios_a_grupo "$grupo" "$archivo"
fi
;;
4)
read -p "Ingrese el usuario que desea eliminar: usuario_borrar
if [ -z "$usuario_borrar" ]; then
echo "Error: datos faltantes"
else
eliminar_usuario "$usuario_borrar"
fi
;;
5)
exit 0
;;
*)
echo "Opcion no valida"
;;
esac
done