La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


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

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

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.

4 Caracteres Especiales La mayoría de los Sistemas UNIX utiliza el Sistema ASCII para la representación de Caracteres. \n012Newline (Nueva línea) \b010Backspace (Retroceso) \r015Retorno 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.

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).

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)

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

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.

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)

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-r1 root 5115 Aug 30 19:40 prueba.txt -rwxrwxr-x 1 root 6348 mar /bin/who drwxrwxr-x 3 carlos 80 Sep 27 06:11.

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 ?

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.

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.

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.

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

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

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.

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.

19 Dispositivos Ejemplos de algunos archivos de dispositivos hda(Disco duro a) lp0(Impresora de líneas 0) tty(Terminales) /dev/nullArchivo especial para descarte.

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 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 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? Analice para que sirve la opción –i de ls 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: 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) rwsr-xr-x 1 victor docentes ene 1 16:29 ejecuta -rw-rw-r-- 1 victor docentes 2300 may 18 09:37 prueba.txt -rw-r--r-- 1 victor docentes 5895 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 1024 may 1 17:23 practicos drwxr-xr-x 2 victor soporte 1024 oct navegador drwxrwx--x 2 victor soporte 1024 may 11 7:29 cashflow drwxrwxr-x 2 victor soporte 1024 jul 7 6:54 redes drwxr-xr-x 2 diego docentes 1024 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) 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? 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 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) Indique dónde muestra el comando ls –l información acerca de los links que posee un archivo 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? 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? Trasládese al directorio /usr/bin y ejecute ls –F. Identifique dos vínculos y 5 archivos binarios Averigüe dónde se encuentran las contraseñas en su sistema.


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

Presentaciones similares


Anuncios Google