Proyecto USERMIN

Descripción

A veces la gestión de los usuarios mediante los comandos del sistema se vuelve un poco tediosa y que requiere recordar los comandos que hay que usar así sus distintas opciones.

Este proyecto consiste en elaborar un script para la Shell BASH en GNU/Linux que nos facilite la administración de los usuarios del sistema:

  • El nombre del script será usermin.sh.

Sintaxis

  • La sintaxis del script es la siguiente:
usermin.sh [ --help | --listar | --consultar usuario | --nuevo usuario | --eliminar usuario | -f fichero ]
  • El funcionamiento del script será el siguiente:
Opción Descripción
usuario Es el nombre del usuario a consultar, crear o eliminar.
--help Muestra la ayuda, explicando para qué sirve el script, sus distintas opciones y cómo se utiliza.
--listar Muestra un listado con los nombres, UID y Shell de todos los usuarios del sistema del 1000 en adelante, separando los campos con una coma (,).
--consultar usuario Muestra los datos del usuario especificado en forma de ficha (nombre de usuario,UID, GID, Shell y directorio HOME).
--nuevo usuario Crea un nuevo usuario, pidiendo por teclado uno a uno los datos del nuevo usuario; los datos que se pedirán son “comentario”, “shell” y “contraseña”.
--eliminar usuario Elimina un usuario existente. Se deberá comprobar si el usuario existe; y si no existe, devolver un mensaje de error. Asimismo, se deberá pedir confirmación al usuario (Sí/No) antesde eliminarlo.
-f fichero Crear usuarios por lotes, a partir de los datos especificados en un fichero. Se deberá leer línea a línea el fichero especificado, conteniendo cada línea la información de un usuario diferente. El formato de cada línea será el siguiente (los campos van separados por comas ,): usuario,contraseña,shell,comentario

Para crear los usuarios usa el comando useradd; no olvides la opción -m para que se cree automáticamente su directorio HOME.

Para establecer la contraseña de forma automática: $ echo -e "contra\ncontra" | sudo passwd usuario Donde “contra” es la nueva contraseña y “usuario” es el usuario al que se quiere poner la misma.

Para eliminar los usuarios usar el comando userdel; no olvides la opción -r para que se elimine también su directorio HOME.

Ejemplos de uso

$ useradmin.sh --listar
fran,1000,/bin/bash,Fran Vargas
chanquete,1001,/bin/sh,El barco de Chanquete
juancho,1164,/bin/ksh,Lagarto Juancho
$ useradmin.sh --consultar fran
Usuario: fran
UID: 1000
GID: 1001
Shell: /bin/bash
HOME: /home/fran

Ejemplo de fichero de usuarios

Un ejemplo de fichero para la opción -f del script sería el siguiente:

michael,nait,/bin/bash,Michael Night
pirana,1234,/bin/bash,Pirañita
messi,gol,/bin/sh,Leo Messi

Recorrer el fichero

La forma de recorrer el fichero línea a línea es la siguiente:

while read linea
do
	# aquí se procesa la “linea” leída del fichero con los ...
	# datos del usuario usando “cut”, “tr”, etc., según se necesite
	# y se van creando los usuarios uno tras otro (por cada línea,
	# un usuario)
done < fichero_a_leer

Se tendrá en cuenta que se verifiquen los parámetros especificados por el usuario y se controlen, en la medida de lo posible, los errores.

El script se tendrá que ejecutar como “root” para poder manipular los usuarios.

Calificación

Apartado Funcionalidad Peso (%)
Opción –help Mostrar la ayuda del comando. 10
Opción –listar Listar todos los usuarios desde el UID 1000 en adelante. 15
Opción –consultar Mostrar la ficha de un usuario concreto. 15
Opción –nuevo Crear un nuevo usuario. 20
Opción –eliminar Eliminar un usuario existente. 20
Opción -f Crear usuarios por lotes desde un fichero. 20