Laboratorio de Redes 1 -...

14
Laboratorio de redes ITESM Dep. Ciencias Computacionales Última modificación: enero de 2011 1 INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY Laboratorio de Redes 1 Práctica 3 - Introducción a sistemas GNU/Linux Autor: Dr. Juan Arturo Nolazco (2007) Co-autor: Ing. Raúl Armando Fuentes Samaniego (2011) GNU, Unix y Linux Unix Unix, es un sistema operativo bastante robusto que desde un inicio fue pensado para ser multi-usuario y multi-tarea siendo desarrollado inicialmente por los laboratorios Bell que en aquel entonces formaban parte de AT&T durante 1969. El sistema empieza alcanzar su popularidad cuando emigra de lenguaje ensamblador a lenguaje C en 1973. Históricamente hablando, durante la década de los 70, se manejaba una fuerte ideología de código abierto, esto permitió que UNIX fuese de fácil adopción por terceros, principalmente entre universidades y ciertas empresas comerciales con lo que dieron nacimiento a sistemas operativos como BSD, Solaris, HP-UX y AIX. En la actualidad, por motivos históricos, la marca UNIX está bajo el control de grupo “Open Source” el cual decide cuando otorgar el termino “UNIX-based” a un sistema operativo en base al cumplimiento de ciertos estándares (Como los manejos característicos de UNIX). Se debe de comprender, que aunque los sistemas Unix sigan los estándares del grupo ya mencionado, estos S.O. no tienen porque ser necesariamente gratuitos. Dos ejemplos de esto son los S.O. Linux (open source) y OS X de Apple. GNU Project GNU nace al final de una era donde el código abierto era la norma y que daba paso a una nueva era donde el código propietario se imponía. Con este cambio, se acaba la posibilidad de apoyar y mejorar software existente entre todos, pues ya no era compatible con las nuevas políticas de las empresas. Son las universidades las que más resienten este cambio de era ya que se ven imposibilitadas de seguir utilizando el código de los S.O. de Bell. Como un intento de contrarrestar la perdida del código abierto aparece el proyecto El proyecto GNU (GNU’s not UNIX, una palabra fácil en ingles de escribir y decir) encabezado por Richard Stallman. El objetivo del proyecto no ha cambiando desde aquel entonces y consiste de utilizar el trabajo colaborativo para el ensamble de los sistemas operativos, permitiendo de esta forma crear código 100% libre y que garantiza a los usuarios tener control completo de su equipo de cómputo.El concepto de software libre radica en que las personas deben de poder usar el software de todas las formas que sean

Transcript of Laboratorio de Redes 1 -...

Page 1: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

1

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY

Laboratorio de Redes 1

Práctica 3 - Introducción a sistemas GNU/Linux

Autor: Dr. Juan Arturo Nolazco (2007)

Co-autor: Ing. Raúl Armando Fuentes Samaniego (2011)

GNU, Unix y Linux

Unix

Unix, es un sistema operativo bastante robusto que desde un inicio fue pensado para ser multi-usuario

y multi-tarea siendo desarrollado inicialmente por los laboratorios Bell que en aquel entonces formaban

parte de AT&T durante 1969. El sistema empieza alcanzar su popularidad cuando emigra de lenguaje

ensamblador a lenguaje C en 1973.

Históricamente hablando, durante la década de los 70, se manejaba una fuerte ideología de código

abierto, esto permitió que UNIX fuese de fácil adopción por terceros, principalmente entre

universidades y ciertas empresas comerciales con lo que dieron nacimiento a sistemas operativos como

BSD, Solaris, HP-UX y AIX.

En la actualidad, por motivos históricos, la marca UNIX está bajo el control de grupo “Open Source” el

cual decide cuando otorgar el termino “UNIX-based” a un sistema operativo en base al cumplimiento de

ciertos estándares (Como los manejos característicos de UNIX). Se debe de comprender, que aunque

los sistemas Unix sigan los estándares del grupo ya mencionado, estos S.O. no tienen porque ser

necesariamente gratuitos. Dos ejemplos de esto son los S.O. Linux (open source) y OS X de Apple.

GNU Project

GNU nace al final de una era donde el código abierto era la norma y que daba paso a una nueva era

donde el código propietario se imponía. Con este cambio, se acaba la posibilidad de apoyar y mejorar

software existente entre todos, pues ya no era compatible con las nuevas políticas de las empresas. Son

las universidades las que más resienten este cambio de era ya que se ven imposibilitadas de seguir

utilizando el código de los S.O. de Bell.

Como un intento de contrarrestar la perdida del código abierto aparece el proyecto El proyecto GNU

(GNU’s not UNIX, una palabra fácil en ingles de escribir y decir) encabezado por Richard Stallman. El

objetivo del proyecto no ha cambiando desde aquel entonces y consiste de utilizar el trabajo

colaborativo para el ensamble de los sistemas operativos, permitiendo de esta forma crear código 100%

libre y que garantiza a los usuarios tener control completo de su equipo de cómputo.El concepto de

software libre radica en que las personas deben de poder usar el software de todas las formas que sean

Page 2: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

2

socialmente útiles. (GNU.org)

Este proyecto publica el código para la creación de las herramientas necesarias para un funcionamiento

eficiente de un S.O. , tales como editores LISP, de léxico como Yacc, semántico como bison,

compiladores de códigos en lenguaje C, entre otras herramientas. Esto ha permitido la facilidad de que

ciertos usuarios tomen parte del software, hagan alteraciones y así nazcan distribuciones. E incluso, de

estas mismas distribuciones repiten el ciclo naciendo así distribuciones de distribuciones. Un ejemplo

de esto es Ubuntu, el cual nació como una modificación de la distribución de Debian.

Linux

Linux nace de UNIX y GNU. El kernel de Linux (lo que es propiamente Linux) nace del sistema Operativo

UNIX. Prácticamente, consiste en un manejo de recursos basados en UNIX. Pero el corazón del sistema

operativo (rutinas, comandos como LS, CP, MORE, GREP, etc) provienen de GNU. Por lo mismo la

referencia correcta a un sistema operativo Linux es con el marco GNU/Linux (Un sistema operativo

basado en UNIX que utilice componentes de código abierto del proyecto GNU).

El nacimiento de Linux se remonta a inicio de los 90, como se mencionó antes, UNIX tuvo un fuerte auge

en universidades, pero al ir cambiando el manejo de licencias de código abierto por licencias de

propietarios UNIX quedo vetado en el ámbito educativo. Un intento de corregir dicho problema, vino

de parte del profesor Andrew Tanenbaum al desarrollar MINIX. Que era un sistema operativo creado

desde cero basado en UNIX –tomando en cuenta el auge que se tuvo en dichas universidades - y que

apareció como un código abierto en el documento “Operating Systems: Design and Implementation” de

dicho profesor (Hasan, 2002).

Este código abierto de un sistema operativo completo disponible a nivel académico tuvo fuerte legado y

uno de los que más le sacó provecho fue Linus Benedict Torvalds de la universidad de Helsinki, quien

basándose en MINIX llevo el sistema operativo de un ambiente meramente académico a un ambiente

empresarial dando cono nacimiento un nuevo sistema operativo más robusto denominado: GNU/Linux

Observación: Código Abierto

El objetivo de este documento no es introducir al alumno al manejo de código abierto, pero

cabe aclarar que código abierto no significa “gratuito”. De hecho se obtiene una fuerte

economía de la distribución y creación de código abierto.

Conceptos generales de Sistemas basados en UNIX

Usuarios y permisos

La carta fuerte de los sistemas UNIX es el manejo de usuarios y la seguridad inherente del Sistema

Operativo (mientras éste s encuentre ejecutándose). Ya que desde sus inicios UNIX fue concebido como

un sistema multi-usuario en tiempo real. Es decir, que más de un usuario pudiera hacer uso de los

recursos de un sistema de forma simultánea y que esto fuese trasparente e imperceptible para el mismo

usuario. Que en contraste con DOS pensado para computadoras del hogar era algo que no podía

conseguir.

Page 3: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

3

Pero el manejo de los usuarios va más allá desde un inicio, UNIX consideraba que cada usuario tendrá

una serie de permiso y que dichos permisos podrían agruparse, haciendo que ciertos grupos de usuarios

tuviesen privilegios propios del grupo. Es decir, que cualquier miembro del grupo pudiese ejecutar, leer

o escribir un archivo en particular. Con esto entra el concepto de UGO en los sistemas UNIX. Donde

un archivo tiene permisos para un usuario en particular, el grupo al que pertenece el usuario y los

demás usuarios.

Finalmente, en todo sistema UNIX están los usuarios “estándares” y el usuario Root. Siendo este último

el único usuario con permisos absolutos de todos los archivos y/o componentes del sistema. Si una

persona tiene acceso al usuario “root” tiene capacidad de manipular todo el sistema como mejor le

parezca (para bien y para mal). En las distribuciones Debian (y Ubuntu) el usuario root es ocultado y

en cambio se permite que los usuarios estándares tengan “SUDO” (Substitute User DO). El cual hace

que el comando ejecutado por el usuario tenga los privilegios de otro usuario como lo puede ser el

Root.

Con el concepto de SUDO, lo que se pretende es que solo la cuenta de ese usuario se vea expuesta al

uso común diario y si el manejo de las políticas de SUDO es adecuado, incluso la perdida de la

contraseña del usuario tendrá efectos mitigados en la seguridad del sistema.

A continuación se muestra fragmentos de una configuración del archivo “/etc/sudoers” de una

computadora del laboratorio de redes:

# User privilege specification root ALL=(ALL:ALL) ALL %ccna ALL=(root) /etc/init.d/proftpd %ccna ALL=(root) /usr/bin/gtkterm %ccna ALL=(root) /usr/sbin/gadmin-proftpd %ccna ALL=(root) /sbin/ifconfig, /sbin/route # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL

Captura de Comandos 1 – Fragmentos de Visudo

En esta captura se puede apreciar que existe un grupo denominado ccna( identificado por el símbolo %

que le precede) y un grupo admin.

Un usuario, por ejemplo “redes1” si solo pertenece al grupo ccna al ejecutar el comando SUDO ifconfig

lo ejecutara como si fuese el usuario root- Lo mismo pasara con lo relacionado a servidores TFTP y FTP e

incluso con el manejo de terminales seriales-. Pero si intenta, por ejemplo, ejecutar “sudo rm –f /” no

tiene privilegios para ejecutar el comando “rm” en un directorio bajo el control de otro usuario (en este

caso ROOT) y por lo mismo no podrá realizar dicha acción.

En cambio un usuario que pertenezca al grupo “admin” (aunque también pertenezca al grupo ccna)

puede ejecutar cualquier comando con SUDO como si fuese Root. Por lo mismo, si la cuenta de un

Page 4: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

4

miembro de dicho grupo se ve comprometida la seguridad del equipo se verá afectada. En este aspecto

de seguridad, es conveniente que el usuario de un sistema Linux, limite su propia cuenta a solo los

comandos que el necesite para su uso diario.

Respecto a la seguridad que los sistemas Operativos UNIX y los sistemas Operativos Windows se

recomienda al lector que lea el siguiente artículo:

http://www.kernelthread.com/publications/security/uw.html

Directorios y archivos

Los sistemas basados en UNIX (o sistemas Unix informalmente hablando) mantienen la filosofía en la

que "todo es un archivo", esto significa que un dispositivo cualquiera - teclado, mouse, monitor, tarjeta

de video, etc. - así como las ligas, y los mismos archivos tienen la misma representación dentro del

sistema de archivos en UNIX.

Dicha representación del sistema de archivos es de orden jerárquico parecido a Windows, pero

diferente en el aspecto que nace de un directorio raíz (ROOT) en vez de una unidad o partición de un

disco duro (Cómo C:/ en Windows)

Page 5: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

5

Ilustración 1- Presentación tipica de un arbol jerarquico en Linux (Garrels, 2003)

Dicha representación de archivos se puede apreciar en la ilustración 1. En el nivel /mtnr/ (en

Ubuntu se encuentran en /media/ ) se encuentran los discos duros montados (incluyendo

particiones de Windows si se da el caso ) además de las unidades de lectura como USB, CD,

DVD, etc. En otros niveles como usr se encuentran los programas de un usuario y en sbin los

comandos reconocidos por el sistema Linux. En general, la ilustración 2 muestra el contenido

Page 6: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

6

de las carpetas que son hijos directos del directorio ROOT ( / ).

Ilustración 2 – Manejo estándar de archivos de un sistema Linux (Ricafrente)

Todo archivo posee ciertos bits de control, que se le puede denominar UGO, dichos bits son 3

campos: Escritura (W) , Lectura (R) y Ejecución (X) y se ven repetidos para un Usuario particular

(U), un grupo en particular (G) y todo los demás usuarios y grupos (O).

Un último detalle referente a los archivos. Un sistema UNIX considera por defecto que todo

archivo es un archivo en ASCII y por lo mismo no hace diferencia con las extensiones. De hecho

las extensiones de archivo en un sistema UNIX es más como referencia para el usuario que al

mismo Sistema Operativo.

Tipos de direcciones

Para referirse a la dirección de cierto archivo en el sistema se pueden utilizar dos tipos de direccionamiento:

Absoluto: Se refiere a la dirección completa del archivo usando como referencia de origen el directorio

Page 7: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

7

raíz. Esto se representa escribiendo la 'raíz' ('/')al inicio de la dirección. Ej /etc/hosts /bin/bash

Relativo: Usualmente se hace uso de las dirreciones relativas cuando se quiere utilizar un archivo que se encuentre en el directorio (o nivel) actual. Si por ejemplo, nos encontramos en el directorio /home/redes1/ y en ese nivel existe un archivo llamado “Prueba” podemos hacer uso del archivo como “Prueba” o “./Prueba” donde “ . “es un directorio lógico que siempre apunta al directorio actual. Existe además un directorio lógico dos puntos ( .. ) que apunta siempre al directorio padre del directorio actual (La única excepción sería con el directorio raíz que no posee padre) así si quisiéramos ejecutar un archivo llamado “Aja” ubicado en la carpeta home de Redes2 la dirección relativa sería: “../Redes/Aja”.

La dirección del directorio del usuario /home/<user> es demasiado utilizada por lo que existe una forma particular de llamarla y utilizarla en el direccionamiento, esta forma es '~' y se trata de una dirección absoluta para el usuario que este utilizando la terminal.

Comandos

Existe una gran variedad de comandos para diferentes tareas, incluso algunos comandos

pueden llegar a realizar funciones similares con ciertos argumentos de entrada. No es objetivo

de esta práctica entrar en detalles con cada uno y por lo mismo procederemos a indicar los

más básicos.

ls: Lista archivos y directorios

mkdir: Crea un directorio.

rmdir: Borra un directorio. Nota: el directorio debe de estar vacío.

cd: Cambia el directorio actual a otro.

less: Permite visualizar un documento de texto.

cat: Lee, concatena y despliega archivos de texto en stdout.

head: Despliega en stdout las primeras líneas de un archivo de texto.

tail: Despliega en stdout las últimas líneas de un archivo de texto.

rm: Remueve archivos.

pwd: Imprime la dirección del directorio actual.

touch Cambia el “timestamp” de un archivo (o lo crea).

more Despliega las líneas de un archivo de texto.

ln Crea enlaces entre archivos.

awk Una poderosa herramienta de análisis sintáctico.

NOTA: Todo comando conocido, proveniente de GNU, posee un manual al cual

puede ser accedido via “man” ej: Man ls, donde se explica a detalle toda las

opciones de dichos comandos. En caso particular de sistemas UNIX, esto

incluye además librerías conocidas de C/C++. Existe además del man el

comando whatis el cual da una breve explicación de lo que hace un comando.

Por ejemplo: whatis man.

Cada uno de estos comandos está hecho en C y se encuentra n disponible para todos los usuarios del sistema. Existen además ciertos comandos que sirven para facilitarle información al usuario. Tales como:

Page 8: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

8

whatis <comando> Despliega una breve explicación de lo que hace el comando

Whereis <comando> Despliega el nivel en el que se halla el comando.

Whoami Despliega el usuario actual en la terminal.

<comando> --help Despliega un resumen de los argumentos posibles.

Además de estos comandos, en sistemas Ubuntu, el uso de doble TAB muestra una lista de posibles comandos de acuerdo a las primeras letras introducidas (también puede autocompletar nombres de archivos y comandos si estos ya están plenamente identificados).

Sintaxis de un comando

Existe una cierta nomenclatura a la hora de dar información de cómo puede operar un comando que por lo general es manejado en múltiples plataformas. Dicha sintaxis es:

Comando <Variable obligatoria> [argumentos opcionales < Var obligatoria>]

El primer componente es el nombre del comando y por lo mismo siempre estatico. El siguiente elemento si se requiere es un elemento que debe de aparecer pero cuyo valor no es constante (por ejemplo el nombre de un archivo) y el siguiente es un parámetro opcional para obtener ciertas funciones del programa.

Tomemos por ejemplo el comando “LS” el cual solo posee argumentos opcionales dando esta psible sintaxis:

ls [Directorio a desplegar] [-l]…

Si se introduce un directorio u otros argumentos (-l por ejemplo ) el comando trabajara otro directorio y desplegara más información. Pero en contraste el comando “MORE” tiene esta posible sintaxis:

more <Archivo a leer> [Argumentos adicionales]

Donde dicho comando necesita a fuerza la dirección de un archivo para poder trabajar. Además puede recibir otros argumentos que pueden verse con la ayuda del argumento--help o el man.

I/O estándares (de archivos)

Generalmente se manejan 3 tipos de entradas y salidas para los archivos y estos son:

Entrada – Generalmente de donde se toman los datos l( usualmente los argumentos de

un programa)

Salida – Donde se despliegan los resultados del programa

Error – Una salida especial relacionada a los mensajes de control de un programa.

Dicho tres canales tienen valores estándares, y se les denomina: Salida estándar, error

estándar y entrada estándar. Con esto quiere decir que todo programa tiene una salida

estándar que es la sesión terminal en la que se ejecutó. Una entrada estándar que es el

teclado del usuario y un canal de error estándar que usualmente va a un Syslog (System Log o

Page 9: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

9

bitácora del sistema).

Ilustración 3 – Canales de comunicación basicos al ejecutar un programa en Linux

Cualquiera de los 3 canales puede ser re-direccionado durante la ejecución de un programa.

Por ejemplo, se puede manejar que la entrada del comando GREP sea un archivo existente en

vez de palabras introducidas por el usuario. O bien, los resultados de una búsqueda intensiva

se guarden directamente en un archivo en vez de mostrarse en la terminal

Para lograr cualquiera de los ejemplos anteriores se manejan 3 símbolos:

> ó >> - Manipulan la salida de un programa: EJ: LS > NuevaSalida.txt

< - Manipulan la entrada de un programa : EJ GREP search < Novela.txt

&> - Manipulan la salida de errores de un archivo.

En el primer caso se maneja “>>” cuando se desee anexar la salida al final de un archivo ya

existente (o bien crearlo si no existe) y se maneja “>” cuando se desee crear un archivo o bien

sobrescribir uno ya existente.

Pipeline

Pipeline (o tubería) es un caso especial de direccionamiento, que se vuelva una herramienta

extremadamente poderosa en un sistema UNIX.

La estructura de pipeline es que lo que este al lado izquierdo de pipeline sufre un re-

direccionamiento de su salida que se vuelve la entrada del elemento que esta a su derecha.

Este proceso facilita el trabajo al usuario, ya que no es necesario trabajar el primer archivo y

desviar la salida del comando a un archivo para después usar este archivo como entrada a otro

programa. En vez de eso se utiliza directamente Pipeline con lo cual se simplifica. La siguiente

ilustración muestra mejor el concepto:

Page 10: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

10

Ilustración 4 Pipeline en acción

En el ejemplo de la ilustración cuatro, se maneja la salida del comando LS como entrada del

comando GREP, cuyo argumento adicional es “Prueba” con lo cual lo que se hace es que se

desplegara todo aquel directorio y/o archivo que contenga la palabra “Prueba” en su nombre y

que este dentro del directorio actual.

La salida de dicho ejemplo puede ser la salida estándar, una salida indica por el usuario e

incluso puede servir como entrada a otro comando al aplicar un pipeline adicional (y esto se

puede repetir una y otra vez).

Laboratorio Realice los siguientes ejercicios y anote en los espacios correspondientes lo que se les pida. Es muy

importante que realice los pasos en el orden indicado para que puedan obtener las respuestas

correctas.

1. Ejecute el comando: cd ~

2. Ejecute el comando: ls

3. Indique lo que ha desplegado el comando ls:

____________________________________________________________

____________________________________________________________

____________________________________________________________

____________________________________________________________

____________________________________________________________

Page 11: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

11

Utilice el manual de LS y conteste las siguientes preguntas:

4. ¿Qué argumento despliega la información de UGO de cada archivo? (Tip: Es

información completa o un formato de LS más largo)

____________________________________________________________

5. ¿Qué argumento nos permite imprimir todo el contenido de cada folder contenido en LS

de forma recursiva?

____________________________________________________________

6. La sinopsis de LS es la siguiente: ls [OPTION]... [FILE]... Donde [Option] son los

argumentos que puede llevar opcional LS, FILE es opcional ([ ] significa que el campo

es opcional), ¿Cuál es el valor por default si no se coloca ninguna opción en [FILE].?

____________________________________________________________

Para salir de la página man, puede utilizar ctrl+z lo cual mata el proceso o bien presionar la

tecla “Q” con lo cual termina la página. La diferencia radica que el primero es un modo de matar

cualquier proceso generando una terminación no exitosa del programa y el segundo es el

modo natural de terminar su ejecución.

Estando ya afuera de la página y en el directorio ~ (Ej: /home/redes1/) Procederemos a crear

directorios

7. Cree el directorio Sesion3 utilizando el comando mkdir

8. A continuación crearemos el directorio hijo de Sesion3 con el nombre: Alumnos. Para

ello utilizaremos direccionamiento absoluto. Escriba la sintaxis del comando para

realizar dicha acción:

____________________________________________________________

TIP: Recuerde que ~ es la abreviación a su directorio home y puede

ser usado para direccionamiento absoluto

9. Crearemos otro directorio hijo en Sesion3, este se llamara Reportes. Utilizando ahora

direccionamiento relativo. Escriba la sintaxis del comando para realizar dicha acción:

____________________________________________________________

El archivo /etc/passwd contiene todo los usuarios (y grupos al que pertenecen) registrados en

un Sistema Linux (cada aplicación tiene su propio usuario, además de los usuarios estándares

Page 12: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

12

que poseen directorios “home”). No olvide que no se ha movido del directorio home.

10. Ejecute el comando “ls –l /etc/passwd” . ¿Quiénes pueden leer su contenido?

____________________________________________________________

11. Guarde una copia del archivo, de nombre Usuarios, en Sesion3/Reportes. Para ello

puede utilizar el comando cat y desviando su salida estándar a dicho folder. . Escriba la

sintaxis del comando para realizar dicha acción ( Puede usar cualquier tipo de

direccionamiento):

____________________________________________________________

12. Utilice el comando grep para buscar miembros que pertenezcan a usuarios que tengan

“redes” en su nombre. Dicha búsqueda será en el archivo creado en el paso anterior. (El

instructor puede cambiar que buscar si lo ve necesario).. Escriba la sintaxis del

comando para realizar dicha acción ( Puede usar cualquier tipo de direccionamiento):

____________________________________________________________

Ahora nos enfocaremos en la carpeta ~/Sesion3/Alumnos . Utilizaremos un ejemplo de

pipeline y el resultado se guardara en dicha carpeta.

13. Utilizando directamente el archivo original /etc/passwd asegúrese de crear un pipeline

que después de leer el archivo ejecute el grep del inciso anterior y que la salida sea

guardada en el archivo EjPipeline. Escriba la sintaxis del comando para realizar dicha

acción ( Puede usar cualquier tipo de direccionamiento):

____________________________________________________________

14. Despliegue, utilizando ls, todo los componentes que posee el folder ~/Sesion3/ al

instructor en turno. Escriba la sintaxis del comando para realizar dicha acción ( Puede

usar cualquier tipo de direccionamiento):

____________________________________________________________

15. Utilice el comando rm –r /sesión3/ El cual borra de manera recursiva sesion3 (Borra su

contenido antes de borrar el folder)

Conteste las siguientes preguntas:

16. ¿Qué pasaría si intentara crear el folder /sesion3/ en cualquier otro directorio de home?

¿Por qué?

Page 13: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

13

____________________________________________________________

____________________________________________________________

17. ¿el usuario Redes1 tiene autorización para modificar algo en Root (/)? ¿Cómo lo

demuestra?

____________________________________________________________

____________________________________________________________

Reflexión Anote su reflexión acerca de lo aprendido en la práctica

____________________________________________________________

____________________________________________________________

____________________________________________________________

____________________________________________________________

____________________________________________________________

____________________________________________________________

Escriba por lo menos 2 formas distintas de desplegar el contenido del archivo /etc/group

____________________________________________________________

____________________________________________________________

Fuentes bibliográficas: Dr. Juan Arturo Nolazco, R. A. (2010). UNIX como usuario: Uso básico de consola.

Garrels, M. (Abril de 2003). Chapter 3. About files and the file system. Recuperado el Agosto de 2011, de

Introduction to Linux:: http://www.faqs.org/docs/linux_intro/sect_03_01.html

GNU.org. (s.f.). Recuperado el Julio de 2011, de The Gnu Operating System: http://www.gnu.org/

Hasan, R. (Julio de 2002). History of Linux. Recuperado el Agosto de 2011, de University of Illinois at

Page 14: Laboratorio de Redes 1 - cs.mty.itesm.mxcs.mty.itesm.mx/lab/redes1/Practicas/Redes1_Pr3_GNU_Unix.pdf · Captura de Comandos 1 – Fragmentos de ... por ejemplo “redes1” si solo

Laboratorio de redes ITESM Dep. Ciencias Computacionales

Última modificación: enero de 2011

14

Urbana-Champaign - Department of Computer Science: https://netfiles.uiuc.edu/rhasan/linux/

Raymond, E. S. (2003). Origins and History of Unix, 1969-1995. Recuperado el Agosto de 2011, de The

Art of Unix Programming: http://www.faqs.org/docs/artu/ch02s01.html

Ricafrente, R. (s.f.). Linux File Directory Structure. Recuperado el Agosto de 2011, de PinoyTux Weblog:

http://www.pinoytux.com/linux/linux-file-directory-structure

Unix.org. (s.f.). Recuperado el Agosto de 2011, de The UNIX® System: http://www.unix.org/