Ejercicio - La web de Sistemas Operativos (SOPA)

Anuncio
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS
EJERCICIO SOBRE USUARIOS Y GRUPOS DE USUARIOS
Desarrollar una utilidad escrita en Korn Shell, llamada Mis_Cuentas,
que permita
administrar cuentas y grupos de usuario. La herramienta tendrá las siguientes opciones
básicas: crear grupos de usuario, crear cuenta de usuario, obtener información de grupos de
usuario, obtener información de una cuenta de usuario, eliminar grupos de usuarios y
eliminar cuentas de usuario. Cualquier invocación de la utilidad deberá contener una de estas
opciones que además son incompatibles entre si.
1. Operación de creación de grupo de usuario.
Con esta opción se procederá a crear un conjunto de grupos de usuario de acuerdo
con las siguientes especificaciones.
¾ Valores del perfil del grupo. Se trata de un conjunto de valores comunes
que tendrá el perfil de todos los usuarios pertenecientes al grupo:
Identificador de grupo. Cadena de hasta 10 caracteres alfanuméricos
que identifica al grupo.
Identificador GID del grupo.
Rango de identificadores UID aplicables a los usuarios. Dos valores,
valor mínimo y valor máximo.
Directorio inicial de trabajo
Intérprete de órdenes inicial.
Tiempo de caducidad de la cuenta.
Tiempo de caducidad de la palabra de paso.
¾ Forma de invocación:
#./Mi_Cuentas -CG ruta
Siendo ruta la ruta del archivo que contiene en cada línea los valores
anteriormente descritos para cada grupo nuevo a crear. En cada línea
estarán los campos anteriormente descritos utilizando como campo
separador el carácter “:”.
¾ Ejecución de la orden. La orden deberá validar los distintos campos de la
siguiente manera:
Identificador de grupo. El tamaño máximo serán 10 caracteres
alfanuméricos y no debe existir otro grupo con el mismo
identificador.
Identificador GID del grupo. El valor no puede estar dentro del
rango reservado para los grupos especiales del sistema y debe
ser único.
Rango de identificadores UID aplicables a los usuarios. Dos
valores, valor mínimo y valor máximo. Este rango no debe
solaparse con el rango de valores especiales reservados a
usuarios del sistema sí como de cualquier otro rango de grupos
usuarios existentes.
Directorio inicial de trabajo. Se debe validar que no existe y si es
así proceder a crearlo.
Intérprete de órdenes inicial. Debe ser una ruta a un archivo
ejecutables válido.
Tiempo de caducidad de la cuenta. Tiempo mínimo 2 semanas y
tiempo máximo 6 meses.
Tiempo de caducidad de la palabra de paso. Tiempo mínimo 2
semanas y
máximo 1 mes.
¾ Resultado de la orden. Para cada grupo correctamente especificado se
creará el grupo de usuarios correspondiente en el sistema, además se
añadirá un nuevo registro en el archivo /root/Mi_Cuentas/Grupos.
En el caso de que se produzca algún error se deberá
informar por
pantalla el grupo afectado y la causa del error.
2. Operación de creación de cuentas de usuario.
Con esta opción se procederá a crear una cuenta o un conjunto de cuentas siguiendo
las siguientes especificaciones.
¾ Valores del perfil de las cuentas que debe manejar la utilidad. Se
deberán pasar los siguientes parámetros del perfil:
Nombre de la cuenta de usuario.
Identificador de grupo secundario. Secundario puesto que todos los
usuarios pertenecerán al grupo primario “estudiantes”.
El resto de valores del perfil de las cuentas las obtendrá del registro que
tenga
asociado
el
grupo
especificado
en
el
archivo
/root/Mi_Cuentas/Grupos.
¾ Forma de invocación. Admite dos formatos de orden:
#./Mis_Cuentas -CU usuario grupo_sec
o bien,
#./Mis_Cuentas _CU ruta
Siendo ruta la ruta del archivo que contiene en cada línea los valores
anteriormente descritos para cada nuevo usuario a crear. En cada línea
estarán los valores anteriormente descritos utilizando como campo
separador el carácter “:”.
¾ Ejecución de la orden. La orden deberá validar que el grupo secundario
especificado existe y si es así, entonces validar que el usuario no existe.
En el caso de que no supere alguna de las verificaciones deberá escribir
por pantalla el nombre de la cuenta afectada por el error, así como las
causas que lo produjeron.
Es posible que un mismo usuario aparezca en varios grupos, si es así
entonces la utilidad deberá proceder para que:
El usuario deberá aparecer en cada uno de los grupos a los que
pertenece.
El identificador UID. Será el asignado cuando se le creó por vez
primera una cuenta.
Directorio inicial de trabajo. Se respetará el que ya tenga
especificado.
Intérprete de órdenes inicial. Se respetará el que ya tenga
especificado.
Tiempo de caducidad de la cuenta. Si la nueva cuenta posee uno
mayor, entonces se sustituye, en caso contrario se mantiene el
establecido.
Tiempo de caducidad de la palabra de paso. Si la nueva cuenta
posee uno mayor, entonces se sustituye, en caso contrario se
mantiene el establecido.
¾ Resultado de la orden. Para cada cuenta correctamente especificada se
creará la cuenta de usuario correspondiente en el sistema, además se
añadirá un nuevo registro en el archivo /root/Mi_Cuentas/Usuarios
con los valores de los distintos campos del perfil. En el caso de que se
produzca algún error se deberá
informar por pantalla el grupo afectado
y la causa del error.
3. Operación de Información sobre grupo de usuario.
Con esta opción se procederá obtener información sobre un determinado grupo de
usuario. La información a mostrar es que el grupo tenga registrada en el archivo
“/root/Mis_Cuentas/Grupos”.
¾ Forma de invocación.
#./Mi_Cuentas -IG nombre_grupo
Siendo nombre_grupo el nombre del grupo del que se quiere obtener
información.
¾ Ejecución de la orden. La orden deberá validar que el grupo especificado
existe, si es así, entonces mostrará la información, en caso contrario
informará del error.
4. Operación de Información sobre cuenta de usuario.
Con esta opción se procederá obtener información sobre una determinada cuenta de
usuario. La información a mostrar es que la tenga registrada la cuenta en los distintos
registros del archivo “/root/Mis_Cuentas/Usuarios”.
¾ Forma de invocación
#./Mi_Cuentas -IU
nombre_grupo
Siendo nombre_grupo el nombre del grupo del que se quiere obtener
información.
¾ Ejecución de la orden. La orden deberá validar que la cuenta
especificada existe, si es así, entonces mostrará la información, en caso
contrario informará del error.
5. Operación de eliminación de un grupo de usuario.
Con esta opción se procederá a eliminar un un determinado grupo de usuario que
previamente haya sido creado por la utilidad, o sea,
un grupo registrado en el archivo
“/root/Mis_Cuentas/Grupos”.
¾ Forma de invocación:
#./Mi_Cuentas -DGf
nombre_grupo tipo_borrado
Siendo nombre_grupo el nombre del grupo que se quiere borrar
información y “f” una opción que admite dos valores: “d” para sólo
desactivar las cuentas pertenecientes a dicho grupo y “e” para eliminar
todos los archivos pertenecientes a dichas cuentas. Por tanto, las formas
posibles serán:
#./Mis_Cuentas -DGd nombre_grupo
o
#./Mis_Cuentas -DGe nombre_grupo
¾ Ejecución de la orden. La orden deberá validar que el grupo especificado
existe, si es así, entonces procederá a la eliminación según la opción de
eliminación especificada (d o e), en caso contrario informará del error. Si
se especifica la opción “d”, entonces el registro correspondiente en el
archivo “/root/Mis_Cuentas/Grupos” no se elimina, simplemente
se escribe en el campo GID el valor “-1”. Si se especifica la opción”e”,
entonces se deberá eliminar el registro correspondiente.
Cuando una cuenta de usuario pertenece a más de un grupos activo,
entonces se deberá proceder de la siguiente forma si se ha especificado
la opción “d”, entonces la cuenta de usuario no es afectada,
conservándose los distintos valores del perfil de usuario. En cambio, si se
especifica la opción “e”, entonces se procederá a su eliminación sólo si
la cuenta ya no pertenece a algún otro grupo activo.
En cuanto a los archivos del sistema relacionados con el manejo de
grupo de usuario, sólo se actualizarán cuando se especifique la opción
“e”.
6. Operación de eliminación de una cuenta de usuario.
Con esta opción se procederá a eliminar desactivar una determinada cuenta de
usuario que previamente haya sido creada por la utilidad, o sea,
una cuenta
registrada en el archivo “/root/Mis_Cuentas/Usuario”.
¾ Forma de invocación:
#./Mi_Cuentas -DUf
nombre_usuario
Siendo “nombre”_usuario el nombre de la cuenta que se quiere eliminar
o descativar y “f” una opción que admite dos valores: “d” para sólo
desactivar
la
cuenta
y
“e”
para
eliminar
todos
los
archivos
pertenecientes a dichas cuenta. Por tanto, las formas posibles serán:
#./Mis_Cuentas -DGd nombre_usuario
o
#./Mis_Cuentas -DGe nombre_usuario
¾ Ejecución de la orden. La orden deberá validar que el usuario
especificado existe, si es así, entonces procederá a la eliminación según
la opción de eliminación especificada (d o e), en caso contrario
informará del error. Si se especifica la opción “d”, entonces el registro
correspondiente en el archivo “/root/Mis_Cuentas/Usuarios” no
se elimina, simplemente se escribe en el campo UID el valor “-1”. Si se
especifica la opción ”e”, entonces se deberá eliminar el registro
correspondiente.
Cuando una cuenta de usuario pertenece a más de un grupos activo,
entonces se deberá proceder de la siguiente forma si se ha especificado
la opción “d”, entonces la cuenta de usuario no es afectada,
conservándose los distintos valores del perfil de usuario. En cambio, si se
especifica la opción “e”, entonces se procederá a su eliminación sólo si
la cuenta ya no pertenece a algún otro grupo activo.
En cuanto a los archivos del sistema relacionados con el manejo de
grupo de usuario, sólo se actualizarán cuando se especifique la opción
“e”.
Descargar