Está en la página 1de 5

#!

/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

También podría gustarte