Administración de Redes SISTEMA DE ARCHIVOS EN LINUX Profesor Carlos Figueira Departamento de Computación y T. I. USB Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Todo es archivo en Unix ● ● ● ● Archivos de datos y programas (como el resto de los S.O.) Dispositivos, incluyendo entrada y salida estándar, error, etc. Canales de comunicación entre procesos, e incluso procesos Permite interfaz única de acceso ... ¡aunque más compleja! Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Componentes ● ● ● ● Espacio de nombres: forma de nombrar las cosas y organizarlas en jerarquía API (interfaz de programación): provee acceso y navegación de objetos Modelo de seguridad: un esquema para proteger, esconder y compartir cosas Implementación Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Comandos acceso archivos ● ● ls: contenido de un directorio (dir) cat, more, less: examinar contenido (ascii) ● cp: copiar archivo ● mv: cambiar nombre o ubicación ● mkdir, rmdir: crear, borrar directorio ● rm: borrar archivo Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Algunas particularidades ● ● Linux acepta (¡y pueden co-existir!) varios tipos de sistemas de archivos: ext2fs y ext3fs, Reiser, xfs, FAT, FAT32, NTFS, etc. El núcleo implementa accesos a través de una parte común interna, y otra externa (a través de manejadores de dispositivos o device drivers) Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Jerarquía ● ● ● ● ● El FS (sistema de archivos) se organiza en una estructura única de tipo árbol. La raíz es la barra “/” El nombre absoluto de todo archivo comienza con / Nombres relativos al directorio actual Nombres especiales: “.” (directorio actual) y “..” (directorio padre) Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Sistema de archivos en árbol Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Ejemplos nombre de archivo ● ● Absolutos: – /home/jlp/dato – /usr/bin/emacs Relativos: – – – (PWD=/home/jlp) dato (PWD=/usr) bin/emacs o ./bin/emacs (PWD=/home/jlp) ../../usr/bin/emacs Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Uniendo FS ● ● ● Varios FS independientes. Ejemplos: – Un disco con varias particiones (del mismo tipo o no) – varios discos (fijos o removibles) Para poder accederlos, deben “montarse” en el FS, de manera que puedan referenciarse a partir de “/” Comando mount Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB mount, umount ● mount [dispositivo] [directorio] ● Ejemplo: mount /dev/hda4 /home ● ● ● Opciones controlan tipo de FS, protección, etc. Operaciones comunes en /etc/fstab umount: operación inversa (sincroniza en caso de FS removibles) Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB /etc/fstab #FS mount point tipo opc. dump fsck LABEL=/1 / ext3 defaults 1 1 LABEL=/boot1 /boot ext3 defaults 1 2 LABEL=/home1 /home ext3 defaults 1 2 LABEL=/usr/local /usr/local ext3 defaults 1 2 /dev/hda3 swap swap defaults 0 0 # /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Directorios estándar ● /boot imagen del kernel y archivos para cargarla ● /bin comandos para mínima operabilidad ● /dev dispositivos ● /etc archivos críticos de configuración y arranque ● /lib librerías y partes del compilador C ● /sbin comandos bootear, config. o recuperar sistema ● /tmp temporales, desaparecen al bootear ● /var config. y datos del sistema específico – /var/log logs sistema – /var/spool dir. spool de impresoras, mail, etc. – /var/tmp más espacio temporal (preservado) Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Directorios estándar (cont.) ● /usr jerarquía archivos secundarios y comandos – /usr/bin – /usr/include headers para C – /usr/lib librería y soporte prog. estándar – /usr/sbin comandos menos esenciales que /sbin – /usr/share común a multiples sistemas ● – – /opt fuentes software no local /usr/src/linux /usr/local ● ● /usr/share/man manuales /usr/src ● mayoría de comandos y ejecutables conf., etc. para generar kernel software local /usr/local/{bin, etc, lib, sbin, src} paquetes extras, opcionales Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Tipos de archivos ● Regulares (-) ● Directorios (d) ● Archivos de dispositivos de tipo carácter (c) y tipo bloque (b) ● Sockets locales (s) ● Pipes nominales (p) ● Links simbólicos (l) Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Archivos regulares ● ● ● Secuencia de bytes, sin estructura No hay diferencia entre archivos de datos, ejecutables, librerías, etc. Se pueden acceder secuencial o aleatoriamente Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Directorios ● ● ● Contiene referencias a otros archivos: – Nombre – Número de I-nodo (hard link) o nombre de archivo (simbólico o soft link) I-nodo: fechas, permisos, localización de archivo en disco, etc. Creados con mkdir, borrados con rmdir Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Dispositivos ● ● ● ● Creados con mknod Además del tipo, se identifican por dos números: major y minor device number El major identifica el manejador. Ej: 6 identifica manejador de puerto paralelo El minor identifica la unidad particular. Ej: el primer puerto paralelo (/dev/lp0) tiene minor 0 Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Archivos de dispositivos tipo carácter y bloque ● ● Cuando el kernel recibe petición de acceso a un archivo de dispositivo, lo pasa al manejador (device driver) Archivos de dispositivo tipo carácter y bloque; se distinguen por quién hace buffering – Caracter: lo hace el manejador (ej: tty) – Bloque: lo hace el kernel (ej: discos) Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB sockets locales ● ● ● Sockets conectan procesos remotos (dom. INET) o locales (INET o UNIX) Se representan en FS, pero sólo pueden ser accedidos por procesos conectados Se crean con llamada socket y se borran con rm o unlink Usados por sistema de impresión, Xwindows y syslog Administración de Redes: Sistema de Archivos en Linux ● Carlos Figueira/USB Pipes nominales ● ● Pipes (tubos) son mecanismos de comunicación FIFO entre procesos locales Muy usados en programación concurrente en Unix/Linux. Ej: ls ­l | more ● Dos tipos: sin nombre y nominales ● Los nominales se representan en FS Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Atributos de archivo ● 12 bits constituyen el modo de un archivo: – 9 bits para los permisos (control de acceso) – 3 bits de control de ejecución ● ● ● setuid y setgid: el proceso que lo ejecuta toma la identidad (resp. grupo) del dueño Sticky bit: ignorado si es archivo 4 bits para el tipo de archivo Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB Permisos de archivos ● ● ● Cada archivo tiene un dueño (usuario) Sólo tres permisos: lectura (r), escritura (w) y ejecución (x) Tres tipos de usuarios: dueño (u), miembros del grupo del dueño (g), y otros usuarios (o) ● 9 bits: rwx (u) rwx (g) rwx (o) ● Octal (Ej: 750) o simbólico Administración de Redes: Sistema de Archivos en Linux Carlos Figueira/USB