88/100 Programación Bajo Plataformas Abiertas Laboratorio 01 Oscar González Castro B02709 Primera Parte: Primer contacto con el sistema 14/20 1. Se explora el entorno y algunos comandos básicos como ls y cd sin problemas. 2. Se actualiza la lista de paquetes con apt-get update y como superusuario (anteponiendo “sudo” al comando). Con el comando apt-get install elinks y como superusuario, se instala el explorador ELinks. Capturas de pantalla, salida de la terminal, nano, touch? Segunda Parte: Usuarios, grupos y permisos 46/50 1. Se agregan dos usuarios nuevos con: sudo adduser usuario1 sudo adduser usuario2 2. Se agrega el nuevo grupo ie0117: sudo addgroup ie0117 y se agrega usuario1 a este grupo: sudo addgroup usuario1 ie0117 3. Cambiamos de directorio a /tmp con el comando cd y se agrega la siguiente jerarquía de archivos y directorios: DirectorioBase | | |-- Directorio1 | | | |--- Archivo1 | | | |--- Archivo2 | | | `--- Archivo3 | |-- Directorio2 | | | |--- Directorio2-1 | | | |--- Directorio2-2 | | | `--- Archivo4 | `-- Directorio3 (mkdir DirectorioBase) -------------------------------------------> (mkdir Directorio1) (touch Archivo1) (touch Archivo2) (touch Archivo3) -------------------------------------------> (mkdir Directorio2) (mkdir Directorio2-1) (mkdir Directorio2-2) (touch Archivo4) -------------------------------------------> (mkdir Directorio3) 4. Se hacen las siguientes asignaciones: a) Se cambia el grupo de DirectorioBase y su contenido de manera recursiva a ie0117: sudo chown -R :ie0117 DirectorioBase/ b) Se cambia el usuario dueño de Directorio1 y Directorio2 a usuario1: sudo chown usuario1 Directorio1 Directorio2 c) Se cambia el usuario de Archivo1, Archivo2 y Directorio2-1 a usuario2: sudo chown usuario2 Archivo1 Archivo2 sudo chown usuario2 Directorio2-1 5. Se realizan las siguientes asignaciones de permisos: a) Directorio1: lectura, escritura y ejecución al usuario, lectura y ejecución al grupo y a los otros. sudo chmod 755 Directorio1 b) Directorio2-2: lectura, escritura y ejecución para el usuario y el grupo. Lectura y ejecución a otros. sudo chmod 775 Directorio2-2 c) Archivo3: lectura, escritura y ejecución para el usuario y el grupo. Nada para los otros. sudo chmod 770 Archivo 3 6. Preguntas Primero hay que notar que los archivos creados para el laboratorio vienen por defecto con el modo 664 y los directorios con el modo 775. a) ¿Cuáles archivos pueden ser editados por usuario1? ¿Por qué? usuario1 puede editar cualquiera de los cuatro archivos existentes, ya que, para Archivo1, Archivo2 y Archivo3, estos se encuentran en el directorio Directorio1, del que es dueño y tiene permisos de escritura (recordemos 755), y los archivos en él pertenecen al grupo ie0117, y todos tienen permisos de escritura para el grupo. Por otra parte, Archivo4 también esta en un directorio que pertenece a usuario1 y tiene permisos de escritura (por el grupo, ie0117). b) ¿Cuáles archivos pueden ser editados por usuario2? ¿Por qué? usuario2 no puede editara Archivo1, Archivo2, Archivo3, ya que están en Directorio1 y no pueden ser modificados por “Otros”, esto por los permisos anteriormente asignados al directorio (755). En cambio, sí puede modificar a Archivo4, debido a que Directorio2 tiene permisos para que sea modificado por el grupo al igual que el archivo. Pero el usuario2 no pertenece al grupo ie0117. c) ¿En cuáles directorios puede crear nuevos archivos usuario1? ¿Por qué? usuario1 puede crear archivos en todos directorios porque todos tiene permisos de escritura, ya se para el usuario o para el grupo. Depende de los permisos iniciales ... pero en definitiva podría hacerlo en Directorio1 y Directorio2-2 . d) ¿En cuáles directorios puede crear nuevos archivos usuario2? ¿Por qué? El directorio Directorio1 es el único que no puede modificar usuario2, porque ese directorio le pertenece a usuario1 y solo tiene permiso de escritura para el usuario dueño. Todos los demás directorios tienen permisos de escritura para el grupo (ie0117), por lo que usuario2 puede crear nuevos archivos. Recuerde que usuario2 no pertenece al grupo ie0117 . 7. Se borra el directorio DirectorioBase: sudo rmdir DirectorioBase rmdir borra únicamente directorios vacíos. Tercera Parte: Manejo de procesos 28/30 1. Se ejecuta el comando ps y despliega información sobre los procesos que se están ejecutando en el momento. Al ejecutar el comando con las opciones a, ax y aux se muestra la información en sintaxis BSD y desplegada con más comodidad para el usuario. 2. Se instala el paquete build-essential . 3. Se descarga y compila el archivo programa1.c. Al ejecutar programa1 imprime en pantalla “Ciclo Infinito”, aparentemente, infinitas veces. 4. Al enviar el programa al background con ctrl+z, se detiene su ejecución. Esto se puede corroborar con el comando jobs. 5. Al usar el comando bg, continúa la ejecución de programa1, a pesar de eso, es posible usar la terminal normalmente. 6. Con el comando fg, se ejecuta programa1, pero no se puede utilizar la terminal. 7. Se termina la ejecución de programa1 con ctrl+c. 8. Se descarga y compila el archivo programa2.c. Al ejecutar programa2, no hay gran accionar, simplemente se hace inútil tratar de usar la terminal. 9. Cuando se intenta “matar” el proceso enviando las señales USR1, HUP y TERM con kill, únicamente imprime en pantalla el tipo de señal que se envía sin tener mayor cambio en el programa. 10. Si se intenta terminar la ejecución de programa2 presionando ctrl+c, simplemente lo reporta imprimiendo en pantalla “Ctrl-C fue presionado”. 11. Cuando se usa el comando kill con la señal KILL, el proceso termina imprimiendo en pantalla “Terminado (killed)”, ya que kill -KILL termina cualquier proceso forzadamente. Capturas de pantalla?