====== Actividad 2 ====== ===== Preguntas de la actividad ===== * Cómo uso algún comando o programa? Como accedo a la ayuda? * Qué es un sistema de archivos? * Cómo crear, borrar, mover, archivos y directorios? * Qué es una red de computadoras? Internet? * Bueno, cómo es que se configura la red? Qué es una red de computadoras? * Quiero tener mi propia página web! Cómo? Y si lo quiero en mi casa y quiero que sea accesible al público? * Y si mi hermano quiere usar mi compu, le doy mi clave de usuario o puedo hacer algo más? Y que tal si queremos compartir algunos archivos (suid)? ===== Temas tentativos a cubrir ===== * Man * Apache * Simple network administration (/etc/network/interfaces) * Working with the terminal (filesystem cmds) * Simple system administration (adduser, addgroup) * Environment (PATH) * File Systems ===== Explicaciones ===== * Para que sirven los archivos .xsession .bashrc .bash_history ? * Por que algunas archivos tienen un //.// al inicio? * Archivos de configuración locales (puntos) y globales (etc) * No deje pasar los errores!! En linux típicamente si el comando no devuelve nada a la consola significa que todo estuvo bien, pero si hubo algún mensaje, siempre hay que revisarlo detenidamente para estar seguro que no es un error o para entender el error y corregir el problema inmediantemente. Un ERROR ignorado solo se ACUMULA! no lo deje. * Que es source y destination (o target)? (para cp mv) * comando argumentos: ej: cp test/prueba6 test/2 Explicar al final: * stdin, stdout, stderr * | * > * %%>>%% * 2>&1 * $? ===== Instrucciones ===== * Programas que vamos a usar: pwd cd ls mkdir touch mv rm cp adduser su id chmod chown addgroup mount umount cat echo grep umask * Conteste y anote que hace cada uno de estos comandos. (recuerde el comando man) (google también ayuda) * Para el resto de la actividad trate de ejecutar el comando //ls// después de cada comando para saber que está pasando (que archivos hay en el directorio actual? esto puede ayudar a identificar en que directorio se encuentra) ==== Creando, listando y desplazándonos ==== * Cree los siguientes directorios en su home: mkdir test mkdir test/1 mkdir test/2 mkdir test2 mkdir test2/2 * Cree los siguientes archivos dentro de esos directorios touch test/prueba1 touch test/1/prueba2 touch test/2/prueba3 touch test2/prueba4 touch test2/2/prueba5 * Dibuje un árbol (o raíz) de estos directorios, subdirectorios y archivos. (Cada bifurcación o nodo es un directorio/subdirectorio y cada hoja (o fin de raiz) es un archivo. Suponga que el inicio de la raíz o del tallo del árbol es ///home/// * En que directorio me encuentro? (pwd) * Cuál es mi directorio //home//? * Cómo me cambio a mi directorio //home//? : cd o cd ~ o cd /home/ * Qué es //~// ? * Cambie de directorio a test2/2 cd test2/2 #método 1 o cd cd test2 #método 2 cd 2 o cd /home//test2/2 #método 3 o cd ~/test2/2 #método 4 * Que diferencia existe entre estos? * Después de usar el método 4 puede usted usar el método 1 para cambiar al directorio //test/2// ? * Explique que hacen los comandos: cd .. cd . cd ~ cd - * Concluya que significa //..//, //.//, //~//, //-// (cuidado con el //-//, no siempre significa lo mismo) * Desde el directorio actual (y sin usar el comando cd) cree un archivo en el directorio //~/test// llamado //prueba6// * Liste el contenido del directorio test/1 de dos formas * Liste los archivos del directorio /usr/bin por orden de modificación, los más nuevos primero. ==== Copiando, moviendo, eliminando ==== * Copie el archivo //prueba6// al directorio //~/test/2// (use cp, lea el manual para entender la sintaxis) * Siempre liste el directorio fuente y el directorio destino para saber que el resultado fue el deseado (siga haciendo esto en TODOS los siguientes pasos) * Mueva el archivo //prueba6// de vuelta al directorio donde se encontraba originalmente * Cambie de directorio a su //home// y desde ahí (sin cambiar de directorio), borre el archivo //prueba1// . (tiene que buscar donde se encuentra el archivo //prueba1//) * Realice los siguientes comandos: cd mv test2 test * Que sucedió? Dibuje el nuevo árbol. * Regrese el sistema de archivos a su estado anterior. ==== Agregando usuarios ==== * Agregue un usuario adicional a su computadora con la clave que usted desee: sudo adduser usuario2 * Liste el directorio ///home// ls /home * Ahora debería ver los //homes// de los dos usuarios * Conviértase en el nuevo usuario: su usuario2 * Introduzca el comando //id// . Para que sirve? * Cámbiese a su nuevo //home// cd * En que directorio se encuentra? (use el comando adecuado para corroborar esto) * Cree un directorio llamado prueba_usuario2 mkdir prueba_usuario2 * Dentro de este directorio cree y edite un archivo con el nombre //test.txt// y ponga el siguiente contenido dentro: Esto es una prueba, esta línea fue escrita por el usuario2 * Regrese a su usuario original: exit * o presionando Ctrl-D * Use //id// para corroborar su identidad. (//echo $USER// que hace?) * Regrese al directorio de su usuario. * Escuche las explicaciones del profesor sobre permisos. * Edite con //nano// el archivo ///home/usuario2/prueba_usuario2/test.txt// y agregue lo siguiente al final del archivo Esto intenta escribir el primer usuario! * Aplique el comando para guardar los cambios (Ctrl-X). Qué pasa? * liste los permisos del archivo ///home//prueba_usuario2/test.txt// (ls -al). Qué hace //-a// y que hace //-l//? * Cambie los permisos del archivo //test.txt// para que su usuario original si pueda editar el archivo. (ponga atención a las explicaciones del profesor) * Cambie los permisos del directorio //prueba_usuario2// del usuario2 para que el usuario1 pueda crear archivos adentro. * 1) Conviértase en usuario2 y cree un nuevo archivo //test2.txt// dentro del directorio //prueba_usuario2//. * 2) Intente editar desde el usuario1 este archivo. Qué pasa? * Borre //test2.txt// * Utilice el setuid o setugid (suid, sgid) y umask sobre el directorio //prueba_usuario2// y realice nuevamente el paso 1) y 2) . Cuáles son los permisos de los archivos del directorio //prueba_usuario2// ? * Que hace el comando //su// sin nombre de usuario como argumento? ===== Materiales ===== wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.6-rc2.tar.bz2 ===== Evaluación ===== En esta actividad se evaluará: 1) Compartir un directorio entre varios usarios, 2) Editar archivos correctamente sin permisos de superusuario por dichos usuarios en dicho directorio compartido ~~DISCUSSION~~