La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

2 – Sistemas de Archivos Programación II Ing. Diego J. Arcusin

Presentaciones similares


Presentación del tema: "2 – Sistemas de Archivos Programación II Ing. Diego J. Arcusin"— Transcripción de la presentación:

1 2 – Sistemas de Archivos Programación II Ing. Diego J. Arcusin

2 Todo en Unix son archivos
Sistema de archivos sencillo y fácil de usar. Archivo = una secuencia de bytes El sistema no impone estructura alguna sobre los archivos ni asigna significado a su contenido. El significado de los bytes depende únicamente de los programas que interpretan el archivo.

3 Comandos útiles od - Octal dump (Vaciado octal)
opción –c (interpreta bytes como caracteres) opción –b (muestra los bytes como números octales) opción –x (muestra los bytes como números hexadecimales) file – Indica los tipos de archivo (en base a suposiciones de acuerdo a su contenido) du – (Disk Usage) Fue diseñado para indicar cuánto espacio del disco está ocupado por los archivos de un directorio (incluyendo todos sus directorios). opción –a (all) Despliega todos los archivos que hay en un directorio. Código Abierto. Se distribuye con el código fuente. Hecho en C (Antes se desarrollaban en Assembler) Lenguaje en C -> Portabilidad entre distintos Hardware. Fácil de modificar y mejorar. Tiempo Compartido: Contra los recursos de una computadora y los asigna entre los usuarios.

4 Caracteres Especiales
La mayoría de los Sistemas UNIX utiliza el Sistema ASCII para la representación de Caracteres. \n 012 Newline (Nueva línea) \b 010 Backspace (Retroceso) \r 015 Retorno de Carro No existe un caracter especial Fin de Archivo. El UNIX identifica el final de un archivo cuando ya no encuentra datos en él. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

5 El Directorio de Trabajo
El Directorio de Trabajo es un atributo de un proceso, no de una persona ni de un programa. Si un proceso crea un proceso hijo, este hereda el directorio de trabajo de su padre. Pero si después el hijo cambia a un nuevo directorio de trabajo, el padre no es afectado (su directorio de trabajo permanece igual sin importa qué haga el hijo). Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

6 Más sobre Directorios Independientemente del tratamiento particular que le da el Kernel a los directorios, estos residen como archivos ordinarios dentro del sistema de archivos. Pueden ser leidos como archivos ordinarios, pero no se les puede crear, o escribir en ellos como tales (El núcleo se reserva esta tarea para conservar la integridad de la información de los mismos). El formato de un “archivo” de directorio es una combinación de datos binarios y de texto. Cada entrada del directorio consiste en 16 bytes: Los dos primeros bytes indican donde se encuentra la información administrativa del archivo. Los últimos 14 guardan el nombre del archivo rellenado con caracteres ASCII nulos (valor 0) Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

7 Introducción a los Permisos
Cada archivo tiene permisos asociados con él, los cuáles indican qué puede hacerse con el archivo y quién puede hacerlo. Si bien un usuario inicia sesión mediante su nombre, el sistema reconoce al usuario por medio de un número conocido como uid. El Unix permite que distintos usuarios tengan el mismo uid lo cuál los hace indistinguibles para el sistema (Situación indeseable desde un punto de vista de seguridad) Además de un uid se le asigna al usuario un identificador de grupo (group-id) El sistema de archivos determina lo que el usuario puede hacer mediante los permisos otorgados a su uid y group-id Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

8 /etc/passwd El “Archivo de contraseñas”. Es un archivo de texto ordinario que contiene toda la información de inicio de sesión de cada usuario. Los campos del /etc/passwd se encuentran separados por “:” identificador de inicio Contraseña encriptada uid group-id varios Home Directory Shell El Archivo /etc/group contiene los nombres de grupos y sus identificadores, y define a los usuarios miembros de los grupos. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

9 Contraseñas La contraseña del /etc/passwd se encuentra encriptada para evitar que pueda ser visualizada por cualquier usuario del sistema. El proceso de encriptación es de 1 vía. Este sistema permite pasar de la forma original a la forma codificada pero no viceversa. Durante el proceso de login, la contraseña ingresada por el usuario es encriptada y comparada con la contraseña encriptada residente en el archivo /etc/passwd. Si ambas coinciden se permite el ingreso de sesión. Para lograr mayor seguridad, algunos sistemas UNIX contienen las contraseñas en otros archivos (Por ejemplo: /etc/shadow) Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

10 Permisos Existen 3 tipos de permisos para cada archivo:
leer (Read) - Examinar el contenido del archivo escribir (Write) – Cambiar su contenido ejecutar (eXecute) – Ejecutarlo como un programa Estos permisos se pueden aplicar en forma independiente a: El dueño del archivo (Owner) El grupo del dueño del archivo (Group) Los restantes usuarios (World or Others) Ejemplos: -rw-rw-r— 1 root Aug 30 19:40 prueba.txt -rwxrwxr-x root mar /bin/who drwxrwxr-x 3 carlos Sep :11 . Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

11 Permisos (El Set Uid) Es una idea simple pero elegante que resuelve varios problemas de seguridad. La existencia de un permiso “s” en lugar del permiso de ejecución para el dueño del archivo indica que, cuando el comando se ejecuta, se le darán los permisos correspondientes al dueño del archivo. El usuario “toma prestada” la identificación del dueño del archivo mientras se ejecuta el comando. Sin embargo es un concepto potencialmente peligroso. ¿Qué pasaría con un archivo cuyo dueño fuera root con permisos –rwsrwxrwx ? Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

12 Permisos en directorios
Si bien los permisos en los directorios funcionan de manera diferente, la idea básica es la misma: r – El usuario puede leer el directorio, por lo que,por ejemplo, puede ver que archivos hay en él por medio de ls) w – El usuario puede crear y borrar archivos en este directorio (De hecho el usuario puede escribir sobre el “archivo” del directorio). Los permisos para borrar archivos son independientes del archivo mismo. Si el usuario tiene permisos de escritura sobre el directorio puede borrar archivos de él , aún los archivos estén protegidos contra escritura. x – Determina si puede “accederse” o no a un archivo en él. si se crea un directorio con permisos –x significa que los usuarios pueden acceder a cualquier archivo que conozcan en el directorio, pero no pueden ejecutar ls sobre él. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

13 El comando chmod Permite el cambio de los permisos sobre los archivos.
Posee dos formas para especificar los permisos: Forma Octal Se asignan 3 dígitos. El primer dígito indica los permisos asignados al dueño, el segundo al grupo, y el tercero al reso. Los dígitos especifican los permisos sumando simultáneamente 4 para lectura, 2 para escritura y 1 para ejecución. Forma Simbólica Permite activar o desactivar permisos puntuales mediante + y – Solo los dueños de los archivos pueden cambiar sus permisos. Utilice man chmod para una descripción completa de este comando. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

14 Aclaraciones sobre Privacidad
No es posible garantizar con los permisos la completa privacidad de la información de los usuarios ya que los superusuarios (Usuario root) pueden leer o modificar cualquier archivo del sistema. Si los usuarios requieren mayor privacidad puede utilizar el comando crypt . Este comando “encripta” un archivo, Modifica el contenido del mismo de tal forma que sea incomprensible para cualquier usuario que pueda ver su contenido. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

15 i-Nodos Estructura del sistema que almacena información administrativa de los archivos. Por ejemplo: Fecha de última modificación Fecha de última utilización (Ejecución o lectura) Fecha de última modificación al I-nodo (Por ejemplo para un cambio de permisos) Permisos Longitud del archivo Región del disco donde se encuentra almacenado el archivo Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

16 i-nodos (Cont.) Los i-nodos “son” los archivos. Lo único que hace la jerarquía de directorios es proporcionar nombres adecuados a los “archivos”. El identificador interno es el i-number (el número del i-nodo) Los 2 primeros bytes para cada archivo dentro del “archivo” del directorio indican el número del i-nodo correspondiente a ese archivo. En realidad un nombre de archivo en un directorio es en realidad un enlace (link o liga) que une un nombre en la jerarquía de directorios al archivo real (indicado por el i-nodo). El mismo número-i puede aparecer en más de un directorio dando lugar a los llamados links Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

17 Links o Ligas El comando ln permite la creación de links. Esto permite crear dos nombres para un mismo archivo, para que este pueda aparecer en dos directorios diferentes. Dos links a un archivo apuntan al mismo nodo-i por lo que en cada uno de sus directorios contendrán el mismo i-number. El comando rm en realidad no borra nodos-i sino que borra entradas del directorio a sus links. Sólo cuando el último link es eliminado, entonces el sistema borra el nodo-i, y en consecuencia los datos. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

18 Dispositivos El Unix abstrae a todos los periféricos (discos, unidades de Cd, impresoras, terminales, etc.) como archivos. Los archivos de dispositivos residen en el directorio /dev Por ejemplo en lugar de tener rutinas especiales para tratar a una diskettera, existe un archivo /dev/fd0 Dentro del Kernel todas las referencias a ese archivo se traducen en los comandos de Hardware necesarios para acceder a la diskettera. Por ejemplo, una programa que lee el archivo /dev/fd0 en realidad leerá el contenido del diskette montado en esa unidad. Existen dos tipos de dispositivos: Dispositivos de Caractéres, y Dispositivos de bloque. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

19 Dispositivos Ejemplos de algunos archivos de dispositivos
hda (Disco duro a) lp0 (Impresora de líneas 0) tty (Terminales) /dev/null Archivo especial para descarte. Se puede decir que las variantes de Bell (1era a 6ta= era una versión comercial continuada por AT&T, y la versión de Berkley era una versión academica. Linux toma partes de cada una de estas ramas.

20 Preguntas ?

21 Ejercicios 2.1. Cree un archivo de texto llamado “ejemplo” mediante el vi y luego analice la información brindada por los siguientes comandos: $ cat ejemplo $ od –c ejemplo $ od –cb ejemplo $ file ejemplo 2.2. Ejecute el siguiente comando y analice sus resultados: $ file /bin /bin/vi /usr/src/cmd/vi.c /usr/man/man1.vi.1 2.3. Analice el siguiente comando. ¿Cuál es la diferencia en su resultado? $ du /etc $cd /etc; du; 2.4. Podría sugerir un comando para encontrar el archivo “find” mediante el uso del comando du. 2.5. Analice el comando od –cb / ¿Qué significa el resultado?

22 Ejercicios (cont) 2.6. Investigue que opción de ls debería utilizar para permitir que ls –l . muestre información acerca de un directorio en lugar de información de los archivos contenidos en dicho directorio 2.7. ¿Para que sirve el comando newgrp? 2.8. Intente el siguiente comando: $date > . ¿Qué ocurre?¿Porqué? 2.9. ¿Para que sirven las opciones –c y –u del comando ls? ¿Con qué criterio ordena la opción –t?¿Cómo se podrá modificar este criterio? 2.10. Analice para que sirve la opción –i de ls. 2.11.   a) Transformar los siguientes permisos a Octales:   rwxr-xr-x    r-xr--r--    rw-r-----    r-x--x--x   b) Transformar los siguientes permisos octales en simbólicos:   644    755    610      c) Fijar, en modo simbólico, los permisos de test.out en modo 754.   d) Fijar, en modo Octal, los permisos de test.out en modo rwxr-x--x.

23 Ejercicios (cont) 2.12.   -rwsr-xr-x 1 victor docentes ene 1 16:29 ejecuta   -rw-rw-r-- 1 victor docentes may 18 09:37 prueba.txt   -rw-r--r-- 1 victor docentes may 15 12:08 index.htm   -rwxr-xr-x 1 victor docentes ene 1 16:29 borratodo   -rwxr--r-- 1 victor docentes ene 1 16:29 leer   drwxrwxrwt 2 victor soporte may 1 17:23 practicos   drwxr-xr-x 2 victor soporte oct navegador   drwxrwx--x 2 victor soporte may 11 7:29 cashflow   drwxrwxr-x 2 victor soporte jul 7 6:54 redes   drwxr-xr-x 2 diego docentes jun 17 19:35 procedimientos Dada la salida del comado ls y suponiendo que el usuario diego, del grupo docentes, tiene acceso al presente listado. Indicar: a) Archivos de los que puede mostrar su contenido. b) Archivos que puede ejecutar como programa. c) Archivos en los que puede modificar contenido. d) Subdirectorios en los que puede ingresar. e) Subdirectorios en que puede grabar. f) Subdirectorios en los que puede borrar archivos que no sean de él. g) Subdirectorios en los que puede ejecutar programas contenidos en ellos.

24 Ejercicios (cont) 2.13. Fijar los permisos del directorio dirnotas de modo que todos lo puedan leer y recorrer, pero sólo el dueño pueda modificar sus archivos: a) en modo simbólico; b) en modo Octal 2.14 Modificar para que el grupo también pueda modificar archivos Ejecute ls –l /etc/passwd . Analice los permisos del archivo. ¿Quién es el dueño del archivo? 2.16. Si el archivo de contraseñas sólo tiene permiso de escritura para el dueño (root) cómo es posible que el comando passwd ejecutado por cualquier usuario permita cambiar la contraseña, y por lo tanto, cambiar el contenido de /etc/passwd 2.17. Investigue el comando umask. Modifique su .profile para que todos los archivos que cree sólo tengan permiso de lectura y escritura para usted.

25 Ejercicios (cont) 2.18. Indique dónde muestra el comando ls –l información acerca de los links que posee un archivo 2.19. Al utilizar el comando mv para mover el archivo de un directorio a otro. ¿Son los datos los que se mueven? ¿Qué información interna piensa usted que se modifica? 2.20. Visualice los dispositivos existentes en /dev con el comando ls –l /dev ¿Puede determinar cuáles dispositivos son de caracter y cuáles de bloque? 2.21. Trasládese al directorio /usr/bin y ejecute ls –F . Identifique dos vínculos y 5 archivos binarios. 2.22. Averigüe dónde se encuentran las contraseñas en su sistema.


Descargar ppt "2 – Sistemas de Archivos Programación II Ing. Diego J. Arcusin"

Presentaciones similares


Anuncios Google