SISTEMAS OPERATIVOS II
Tercer curso Ingeniería Técnica de Sistemas.
Curso 2008-2009
Práctica 5: Procesos en UNIX: credenciales. Sistema de ficheros en UNIX: Redirección.
Continuar la codificación de un intérprete de comandos (shell) en UNIX. Al igual que en la
práctica anterior
- Los argumentos entre corchetes [] son opcionales.
- Los argumentos separados por | indican que debe ir uno u otro, pero no ambos simultaneamente.
- No debe dilapidar memoria (ejemplo: variable que se asigna cada vez que se llama a una función y no se
libera).
- Cuando el shell no pueda ejecutar una acción por algún motivo, debe indicarlo con un
mensaje como el que se obtiene con sys_errlist[errno] o con perror() (por ejemplo,
si no puede cambiar de directorio debe indicar por qué).
- En ningún caso debe producir un error de ejecución (segmentation, bus error ...), salvo
que se diga explicitamente
- Las direcciones de memoria deben mostrase en hexadecimal.
- La información que se nuestra en pantalla no debe incluir en ningun caso líneas en blanco.
- El shell leerá de su entrada estándar y escribirá en su salida estándar, de manera que
podría ser ejecutado un archivo de comandos invocando al shell con su entrada estándar
redireccionada a dicho archivo.
Añadir al intérprete de comandos de las prácticas anteriores las siguientes funciones
- $$
- Modificar los comandos xec, back y la ejecución en primer plano
de manera que se permita la redirección de la entrada estándar, la salida estándar y/o el error
estándar
- $$
- pipe com1 # com2 Ejecuta com1 (ejecutable con parámetros)
redireccionando su salida estándar a la entrada estándar de com2
(ejecutable con parámetros). Tanto com1 como com2 representan ejecutables con
parámetros.
#pipe ls -lR . . / # wc -l -c
ejecuta ls -lR . . / y redirecciona la salida a la entrada estándar de un proceso que ejecuta wc
-l -c
- uid [id]
- Muestra o establece las credenciales de usuario de un proceso. uid
sin argumentos nos informa de las credenciales de usuario (tanto real como efectiva) del
intérprete de comandos; muestra tannto el valor numérico como el login asociado. Ejemplo
->uid
Credencial real: antonio (1000)
Credencial efectiva: visita (1001)
->
Si se especifica id intenta cambiar la credencial efectiva a id. id puede ser
un valor numérico o un login.
Ejemplo
->uid root
Error al intentar establecer la credencial root: Operation not permitted
->uid 0
Error al intentar establecer la credencial 0: Operation not permitted
->uid antonio
Credencial cambiada con exito
->uid 1000
Credencial cambiada con exito
->
Credencial real: antonio (1000)
Credencial efectiva: visita (1001)
->
FORMA DE ENTREGA
Como en las prácticas anteriores
FECHA DE ENTREGA VIERNES 31 ENERO 2009
antonio
2008-12-17