La práctica consiste en un pequeño interprete de comandos, desarrollado en lenguaje shell y lenguaje C, sobre sistema operativo GNU/Linux que realice las funciones especificadas. Los usuarios que pueden usar el interprete mini-shell están almacenados en el fichero "fusuarios", donde se guardan el nombre de usuario y la contraseña. Este fichero se encuentra en el directorio de configuración "cfg". Los datos proporcionados por el usuario son comprobados por el interprete y se permitirá o no entrar al mini-shell.

El interprete, reconoce las órdenes que se indican en el fichero "fordenes", almacenado en el directorio "cfg". Este fichero contiene todos los comandos que el usuario puede ejecutar, así como la fecha y hora del último acceso.

Cada orden ejecutada, correcta o incorrectamente es almacenada en un fichero histórico, denominado fhistorico y que almacena como máximo 50 órdenes, si el número de órdenes almacenadas supera este límite se borra la orden más antigua, para que se pueda almacenar una más reciente.

 

Las órdenes que permite ejecutar el interprete de comandos son:

  • arbol_directorio: Esta orden permite mostrar el contenido completo del directorio que recibe como parámetro, incluyendo los subdirectorios que contenga.
  • cambia_clave: Permite cambiar la palabra clave del usuario que se especifique como parámetro. La nueva clave se pedirá por duplicado para evitar confusiones en su escritura.
  • historico_ordenes: Mostrará tantas líneas del fichero histórico como se especifiquen por parámetro. Las órdenes que muestra son las ejecutadas más recientemente.
  • ejecutar-temporizador: Esta orden permite ejecutar un temporizador con la configuración pasada como parámetro en un nuevo terminal xterm, mientras que en el terminal anterior se pueden seguir ejecutando otras órdenes. Se deberá especificar:
  • Intervalo: el número de segundos que transcurrirá entre cada ocurrencia de ejecución del temporizador.
  • Ocurrencias: Nº de veces que se va a ejecutar el temporizador antes de pasar a la ejecución de otro.
  • Acción: Tarea que va a realizar, valores numéricos del 1 al 5 que representan:

 

1. Mostrar los grupos de usuarios existentes en el sistema, debidamente formateados y los usuarios que pertenecen a dicho grupo(fichero /etc/group).

2. Localizar un fichero pasado como parámetro y mostrar las ubicaciones donde se ha encontrado (Comando locate).

3. Mostrar si un fichero pasado como primer parámetro existe en un directorio pasado como segundo parámetro.

4. Ordenación de todos y cada uno de los ficheros enviados como parámetros, hasta un máximo de 3, almacenando la versión ordenada en un directorio denominado “version_ordenada”.

5. Comprobar si en el fichero de usuarios del sistema (/etc/passwd), existen los usuarios que se pasen como parámetros (como máximo 3).

 

  • Iniciar : Orden que permitirá iniciar el minishell con un usuario distinto al actual, realizando todas las comprobaciones de error necesarias.
  • Salir: Del programa mini-shell se saldrá al ejecutar la orden salir, permitiendo devolver el control al shell del sistema.

 

DESCARGAR