domingo, julio 23, 2006

 

Laboratorio #1



Preguntas a resolver


1.- ¿Qué significa el número que se coloca en man?
man despliega en línea las páginas de un manual


El número que se coloca en man es la sección del titulo que se quiere ver.
Las secciones son las siguientes
1) Comandos de usuario
2) Llamadas al sistema
3) Librerías de rutinas
4) Archivos de dispositivos
5) Formato de archivos
6) Juegos
7) Misceláneos
8) Utilitarios del sistema
9) Documentos

2.- ¿Qué hace el comando apropos?

Da en una línea las descripciones de los manuales con sus respectivas secciones.


Ejercicios

1. habilitación del sistema operativo en una máquina virtual

1.1 Bajar, copiar o tomar prestado el VMwarePlayer e instalarlo.
1.2 Bajar, copiar o tomar prestado la maquina virtual de Minix 2.04
1.3 Descomprimir maquina virtual de Minix y hacer doble clic en mx204.vmx
1.4 Configurar Ethernet a “NAT”


¿Qué es considerado una contraseña fuerte?
Una contraseña fuerte contiene las siguientes características:
-Más de ocho caracteres.
-Contiene combinaciones de letras mayúsculas y minúsculas, números y símbolos.
-Cambie periódicamente y difiera significativamente del password anterior.
-Que no contenga su nombre, user name, o cualquier otra palabra o nombre.
-No comparta su password con nadie.

¿Explique que es mandatory access control?
Control de acceso obligatorio (Mandatory Access Control, MAC). El control de acceso
obligatorio permite que nuevos módulos de control de acceso sean cargados,
implementando nuevas políticas de seguridad. Algunas brindan protecciones de un
angosto subconjunto del sistema, endureciendo un servicio en particular, mientras
otros proveen seguridad etiquetada comprensible a traveés de todas las áreas y
objetos. La parte obligatoria de la definición proviene del hecho que la imposición
de los controles es realizada por administradores y el sistema, y no es dejada a la
discreción de los usuarios como se hace con el control de acceso discrecional
(discretionary access control, DAC)

¿Explique que es un NAT?
La Traducción de Direcciones de Red, o NAT (Network Address Translation), es un
sistema que se utiliza para asignar una red completa (o varias redes) a una sola
dirección IP. NAT es necesario cuando la cantidad de direcciones IP que nos haya
asignado nuestro proveedor de Internet sea inferior a la cantidad de ordenadores que
queramos que accedan a Internet.

2. Comandos Básicos

2.1 Cámbie el password a root a
# passwd

Changing the shadow password of root
New password:
Retype password:

2.2 Cambie otra vez el password de root y asígnele un password en
blanco como el que tenía anteriormente. ¿Qué sucedió?

# passwd
Changing the shadow password of root
New password:
Password cannot be null, try again

una vez asignado un password no permite volverlo a dejar en blanco
porque no permite password nulo
If (newpwd[0] == ‘\0’)
Std_err(“Password cannot be null”);

2.3 ingrese a la sesión con root y agréguele “unitec” al password.

¿Qué sucede?
Sucede que acepta la clave como valida

¿Podría determinar cuál es la debilidad del manejo de passwords en
este sistema operativo?

El problema es que utiliza arreglos de tamaño 9 por lo que solo verifica las
primeras 9 letras del password

char *name, pwname[9], oldpwd[9], newpwd[9], newcrypted[14],sl[2];


2.4 Indique que directorio pasa a ser su current directory si ejecuta:
2.4.1 # cd /usr/src
Current directory /usr/src
2.4.2 # cd
Current directory /root
2.4.3 # cd /usr/src
Current directory /usr/src
2.4.4 # cd boot
Current directory /usr/src/ boot
2.4.5 # cd
Current directory /root

2.4.6 ¿Cómo explica el punto 2.4.2 y 2.4.5?
La sintaxis de cd es:
Cd [ directory ]
Si no se especifica [ directory ] entonces utiliza el valor
predeterminado $HOME que es /root

2.5 Cual es el contenido del archivo /root/.profile y para que sirve
# cat .profile
Test –f ~bin/.profile && . ~bin/.profile
-Comparte el directorio bin donde se encuentran varios comandos

2.6 En que directorio se encuentra el archivo proc.c
#find –name proa.c –print
/usr/src/kernel/proc.c
-El archivo proc.c esta en el directorio /usr/src/kernel/

2.7 Genere un directorio /usr/"suprimernombre"
# mkdir /usr/douglas

2.8 Copie el archivo /etc/passwd al directorio /usr/"miprimernombre"
# cp /etc/passwd /usr/douglas/

2.9 Cambie el grupo del archivo /usr/"miprimernombre"/passed para que sea other
# chgrp other /usr/douglas/passwd

2.10 Cambie los permisos del archivo /usr/"miprimernombre"/passwd para que
el propietario tenga permisos de lectura, escritura y ejecución
el grupo tenga solo permiso de lectura y ejecución
el resto tenga solo permisos de ejecución

# chmod 751 /usr/douglas/passwd

2.11 grep
Muestre las líneas que tiene el texto include en el
archivo /usr/src/kernel/main.c

# grep include /usr/src/kernel/main.c
# incluye “kernel.h”
# incluye
# incluye
# incluye
# incluye
# incluye
# incluye “proc.h”

Muestre las líneas que tiene el texto POSIX que se encuentren en
todos los archivos /usr/src/kernel/

# grep POSIX /usr/src/kernel/*.*
/usr/src/kernel/kernel.h:….
/usr/src/kernel/rs232.c:….
/usr/src/kernel/system.c:…
…..
/usr/src/kernel/tty.c:…
…..

2.12 su

2.12.1 ¿Para que sirve su?
Sirve para correr temporalmente un shell bajo la identidad de un súper
usuario o de otro usuario.

2.12.2 ¿Que diferencia hay entre “su” y “su -”?
Con su el entorno actual es pasado al nuevo shell
Con su - construye un nuevo entorno consistentes en las variables PATH,
USER, LOGNAME, HOME, SHELL, TERM, TERMCAP y TZ. El entorno es el mismo como
si fuera un login normal, excepto TERM, TERMCAP y TZ que son copiados del
entorno actual si los establece.

2.12.3 ¿Que sucede si ejecuta el comando su estando logged in como root?
Crea inmediatamente el shell con identidad del nuevo usuario

2.13 Genere una cuenta de
Adduser douglas users /usr/douglas


2.14 Entrar a la nueva cuenta
2.14.1 cambie el password al nuevo usuario
# passwd
Changing the shadow password of douglas
New password:
Retype password:

2.14.2 Ejecute el comando su
# su root
# su douglas

2.14.2.1 ¿Qué le solicita?
El password

2.14.2.2 ¿Sucede lo mismo que en 2.12.2? ¿Por qué?
No sucede lo mismo en el ejercicio 2.12.2 esta logged in
como root como root es el “superusuario” del sistema
operativo cualquier su no requiere contraseña mientras que
estando logged in como otro usuario si requiere el password

2.15 Suprima el archivo /usr/"miprimernombre"/passwd
# rm /usr/douglas/passwd

2.16 ps
¿Cuántos procesos de usuario tiene ejecutando?
Indique cuántos procesos están corriendo en el sistema
# ps
3 procesos
# ps –ax
23 procesos

2.17 mkfs
Genere un Filesystem MINIX en un ram disk.
d0p0s0>ramsize=1024
# mkfs –b 1024 /dev/ram

2.18 mount
Montelo en el directorio /mnt
# mount /dev/ram /mnt
/dev/ram is read-write mounted on /mnt

2.19 df
Presente los filesystems que tiene montados
¿Que espacio libre y ocupado tiene todos los filesystem montados?
(En KBYTES)
Filesystem free used
/dev/c0d0p0s0 931 509
/dev/c0d0p0s2 482584 26064
/dev/ram 997 27

Copie algunos archivos de /usr/bin a /mnt
# cp /usr/bin/* /mnt

2.20 umount
2.20.1 Desmonte el Filesystem del directorio /mnt
#umount /dev/ram
/dev/ram unmounted from /mnt

2.20.2 Monte el Filesystem del disco RAM como read-only en el
directorio /mnt

# mount -r /dev/ram /mnt
/dev/ram is read-only mounted on /mnt

2.20.3 Desmonte el Filesystem del directorio /mnt
#umount /dev/ram
/dev/ram unmounted from /mnt

2.21 fsck
# fsck /dev/ram

 

Solucion al problema de la tarea sobre el programa en C


/*******************************************************************************
Programa en c
Que al final de compilarlo, y lo ejecute:

./a.out que usa eduardo sobre ollas

imprima las primeras letras de todas las palabras.
En este caso, imprimirá "queso".

Autor: Douglas Yovanny Velasquez Escoto
Fecha 21 de julio de 2006
*******************************************************************************/


#include

int main(int argc, char **argv)
{
int n;
if (argc > 1)
for(n = 1 ; n < argc ; n++)
printf("%c",argv[n][0]);
else {
int c; //Para leer el carácter
int bandera; //Para establecer cuando hay un espacio en blanco

bandera = 1;//Para que imprima la primera letra

printf("Ingrese una linea de texto\n");
//Mientras no se presione Enter obtener un carácter
while ((c = getchar()) != '\n'){

//Si es una letra y es la primera de la palabra
if (bandera == 1 && ((c > 64 && c < 91) || (c > 96 && c < 123)))
printf("%c", c);//Imprime la primera letra de la palabra

//Si se obtiene un espacio en blanco
//entonces la siguiente es la primera letra
if (c == ' ')
bandera = 1;//Es la primera letra
else
bandera = 2;//No es la primera letra
}
}
//Pausa
printf("\n");
system("PAUSE");
return 0;
}



miércoles, julio 19, 2006

 

¿Que espero de la clase de Sistemas Operativos?

Sin lugar a dudas, sacarle el mayor provecho a la clase de sistemas operativos, ya que es un tema muy interesante, donde espero aprender muchas de las interioridades de los sistemas operativos y poder conocer sobre como los sistemas operativos manejan los recursos de la computadora, y poder aplicar el conocimiento en la programación.

This page is powered by Blogger. Isn't yours?