DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX Descubriremos está organizada físicamente la información almacenada en un sistema operativo GNU/Linux para saber dónde tenemos que buscarla. Página 0 de 12 lunes, 28 de marzo de 2011 José María Torres Corral ORGANIZACIÓN DEL ÁRBOL 11:24:20 DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX Tabla de contenido 1 ............ El árbol de Linux ...................................................................................................................................... 3 2 ............ Directorios del sistema ........................................................................................................................... 4 2.1 ........ /boot......................................................................................................................................................... 4 2.2 ........ /etc ........................................................................................................................................................... 4 2.3 ........ /bin ........................................................................................................................................................... 4 2.4 ........ /sbin ......................................................................................................................................................... 4 2.5 ........ /lib ............................................................................................................................................................ 4 2.6 ........ /mnt ......................................................................................................................................................... 5 2.7 ........ /usr ........................................................................................................................................................... 5 2.8 ........ /opt ........................................................................................................................................................... 5 2.9 ........ /var ........................................................................................................................................................... 5 2.10...... /tmp ......................................................................................................................................................... 5 2.11...... /dev .......................................................................................................................................................... 5 2.12...... /proc ......................................................................................................................................................... 5 2.13...... /root ......................................................................................................................................................... 6 2.14...... /home ...................................................................................................................................................... 6 3 ............ La jerarquía /etc ...................................................................................................................................... 6 3.1 ........ /etc/profile .............................................................................................................................................. 6 3.2 ........ /etc/opt .................................................................................................................................................... 6 3.3 ........ /etc/X11 .................................................................................................................................................. 6 3.4 ........ /etc/sgml ................................................................................................................................................. 6 4 ............ La jerarquía /usr...................................................................................................................................... 6 4.1 ........ /usr/bin, /usr/sbin, /usr/lib ................................................................................................................... 6 4.2 ........ /usr/X11R6 ............................................................................................................................................. 6 4.3 ........ /usr/games .............................................................................................................................................. 7 4.4 ........ /usr/include ............................................................................................................................................. 7 Página 1 de 12 ÍNDICE DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX 4.5 ........ /usr/local ................................................................................................................................................. 7 4.6 ........ /usr/src .................................................................................................................................................... 7 4.7 ........ /usr/share ............................................................................................................................................... 7 4.8 ........ /usr/X11R6 ............................................................................................................................................. 7 5 ............ La rama /var ............................................................................................................................................ 7 5.1 ........ /var/lib ..................................................................................................................................................... 7 5.2 ........ /var/log .................................................................................................................................................... 8 5.3 ........ /var/lock .................................................................................................................................................. 8 5.4 ........ /var/run ................................................................................................................................................... 8 5.5 ........ /var/spool ................................................................................................................................................ 8 5.6 ........ /var/tmp .................................................................................................................................................. 8 5.7 ........ /var/cache ............................................................................................................................................... 8 6 ............ Otros directorios ...................................................................................................................................... 8 6.1 ........ /lost+found .............................................................................................................................................. 8 6.2 ........ /media...................................................................................................................................................... 8 6.3 ........ /windows.................................................................................................................................................. 8 6.4 ......... /srv ............................................................................................................................................................ 9 7 ............ Montaje y acceso a los medios extraíble ............................................................................................. 10 7.1 ........ Comando mount .................................................................................................................................... 10 7.2 ........ Comando umount .................................................................................................................................. 11 7.3 ........ Comando mdir ....................................................................................................................................... 11 7.4 ........ Comando mcopy .................................................................................................................................... 11 8 ............ Bibliografía ............................................................................................................................................. 12 Página 2 de 12 ÍNDICE DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX 1 El árbol de Linux Para cualquier usuario novel en el uso de un sistema GNU/Linux, lo más complicado es saber dónde se guardan los archivos, es decir, conocer la utilidad de todos de cada uno de los directorios que se crean al instalar un sistema operativo GNU/Linux, en este caso Debian 6.0. Todos los directorios pueden estar ubicados en una o más particiones, siendo muy recomendable separarlas para aumentar la seguridad de los datos personales en caso de corrupción del sistema. El árbol de Linux respeta el sistema FHS o Filesystem Hierarchy Standard. Veamos una imagen muy gráfica de la organización de los directorios y su dependencia jerárquica: Página 3 de 12 ESTRUCTURA DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX 2 Directorios del sistema Los directorios del sistema son aquellos en los que se guardan todos los archivos que componen nuestro sistema operativo GNU/Linux. Es de capital importancia que ningún usuario que no disponga de los permisos adecuados pueda acceder a los archivos que componen nuestro sistema, ya que, de lo contrario, un usuario inexperto (por ejemplo) podría modificarlos o eliminarlos y hacer que todo el sistema se volviera inestable, o incluso inutilizable (como es el caso de los sistemas de Microsoft, donde la mera activación de un virus por parte de un usuario determinado vulnera la totalidad del sistema operativo y la seguridad y privacidad de los datos del resto de usuarios). En una distribución GNU/Linux típica (como la Mandrake que utiliza el autor de este artículo) podemos encontrar los siguientes directorios del sistema: 2.1 /boot Contiene el núcleo Linux y otros archivos lanzados al arrancar el sistema. Es conveniente que este creemos una partición para alojar esta carpeta. 2.2 /etc Este directorio contiene todos los archivos de configuración de nuestro sistema GNU/Linux (como el archivo passwd, que contiene una lista con los nombres de usuario y contraseñas, o el archivo fstab, que contiene una lista con los puntos donde se han montado las diferentes particiones y los sistemas de archivos que utilizan).Se encuentra obligatoriamente en la partición principal. 2.3 /bin Contiene los ejecutables binarios de base necesarios para el funcionamiento del sistema. Son usados tanto por el administrador como por los usuarios y son relativos a la consola. Algunos comandos ubicados aquí son cat, chmod, cp, date, echo, hostname, kill, login, mount, umount. 2.4 /sbin Todos los comandos esenciales de administración del sistema (super binarios) están alojados aquí. Se refieren a reinició, restauración, recuperación y/o reparación del sistema. Algunos comandos ubicados aquí son: shutdown, fastboot, init o reboot. Es decir, son relativos a los sistemas de archivos, particiones e inicio del sistema. Por esto, solo pueden ser usados por un usuario con permisos de administración. 2.5 /lib Es esta carpeta encontramos las bibliotecas compartidas y módulos del kernel que son necesarias durante el inicio del sistema. Son análogas a los archivos DLL de los sistemas Windows. Son compartidas porque varios comandos distintos pueden utilizar la misma porción de código contenida en una biblioteca. Los binarios vistos hasta ahora obtienen el código de esta carpeta. Su ventaja reside en que no es necesario integrar su código en los programas que las usan, ya que cuando un programa necesita alguna de sus funciones, se carga la biblioteca en la memoria y puede ser usada por cualquier otro programa que la necesite, sin necesidad de volver a cargarla en memoria. Un subdirectorio especial es /lib/modules, que contiene los módulos del núcleo (normalmente se trata de controladores de dispositivos) que se cargan únicamente en caso de que haga falta usar un determinado dispositivo, por lo que no estarán permanentemente ocupando memoria. Página 4 de 12 ESTRUCTURA DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX 2.6 /mnt Se reserva para el montaje de sistemas de archivos de terceros. Este directorio es típico de las distribuciones RedHat, aunque puede no estar presente en otras distribuciones. Su misión consiste en agrupar en un mismo lugar los puntos de montaje de diversas particiones externas, como por ejemplo: CD-ROM, DVD, disqueteras, unidades ZIP, particiones de MS-Windows y de otros sistemas operativos, etc. Este directorio contiene un subdirectorio adicional para cada una de estas particiones (como /mnt/cdrom, /mnt/win_c, /mnt/floppy o /mnt/zip). Si accedemos a estos subdirectorios estaremos accediendo realmente a esas particiones. 2.7 /usr Es el directorio más voluminoso al instalar el sistema porque contiene todos los programas que no están en /bin ni en /sbin. Además, podemos encontrar toda la documentación y fuentes de los programas. Es conveniente crear una partición independiente. El contenido se puede compartir en una rede pero de forma estática. 2.8 /opt Contiene paquetes de software adicionales, como por ejemplo KDE o GNOME. Algunas distribuciones no hacen uso de él. 2.9 /var Su nombre procede de variable, debido a la naturaleza de la información que contienen sus subdirectorios y archivos. Reúne los archivos de datos variables con el tiempo: colas de impresión (en /var/spool/lpd), correo electrónico que todavía no se ha recogido (en /var/spool/mail) o enviado (en /var/spool/mqueue), o archivos de registro creados por los distintos procesos de nuestro sistema (en /var/log). Cuantos más servicios preste el equipo más grande será este directorio, que es muy conveniente que tenga una partición propia. 2.10 /tmp Guarda los archivos temporales creados por las aplicaciones para poder funcionar. Una buena administración del sistema requiera planificar la limpieza periódica de este directorio, que será menor cuanto mayor sea el uso del sistema. 2.11 /dev Este directorio contiene archivos de dispositivos que permiten la comunicación con los distintos elementos hardware que tengamos instalados en nuestro sistema. Este directorio contiene archivos que representan a las unidades de discos duros (como por ejemplo /dev/hda1 o /dev/sda4), las unidades de CD-ROM SCSI (como /dev/scd0) y los vínculos a cualquier tipo de unidad de CD-ROM (como /dev/cdrom), las disqueteras (como /dev/fd0), las impresoras (como /dev/lp0), los puertos serie (como /dev/ttyS0 o /dev/cua0), el puerto PS/2 (/dev/psaux) y las tarjetas de sonido (como /dev/audio). En los comienzos de los sistemas Unix para acceder al contenido de una unidad externa había que montarla previamente. Actualmente se montan automáticamente. 2.12 /proc Contiene los archivos del sistema de archivos de proceso. No son verdaderos archivos, sino una forma Página 5 de 12 ESTRUCTURA DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX de acceder a las propiedades de los distintos procesos que se están ejecutando en nuestro sistema. Para cada proceso en marcha existe un subdirectorio /proc/<número de proceso> con información sobre él. 2.13 /root Es equivalente al directorio /home para el administrador del sistema o usuario root. Normalmente está en la misma partición que /home. Está expresamente reservado al root. 2.14 /home Contiene los directorios personales de los usuarios del equipo, excepto del root, así como la información de configuración propios de cada usuario. La información de configuración se almacena en archivos ocultos para evitar que se listen mediante el comando ls. Por tanto, para configurar una aplicación específica hay que acudir a este directorio. Además, contiene todos los archivos creados por este usuario sin cambiar la ubicación predeterminada. Es obligatorio dedicar una partición para este directorio cuyo tamaño habrá que dimensionar generosamente de acuerdo al número de usuarios del sistema operativo. De esta forma, evitaremos la pérdida de datos por la corrupción del sistema de archivos del sistema operativo. 3 La jerarquía /etc Este directorio posee distintos subdirectorios que se utilizan para la configuración de determinados componentes de nuestro sistema: 3.1 /etc/profile Es un script del Shell que se ejecuta en primer lugar al conectar a un terminal de texto. 3.2 /etc/opt Contiene los archivos de configuración para el software instalado en el directorio /opt. Cada paquete de software tendrá su correspondiente subdirectorio dentro de /etc/opt. 3.3 /etc/X11 Contiene los archivos de configuración del entorno gráfico X Window. Entre otras cosas, contiene los gestores de ventanas y de arranque de los distintos escritorios gráficos. Este directorio es opcional. 3.4 /etc/sgml Contiene los archivos de configuración para SGML y XML. Este directorio es opcional. 4 La jerarquía /usr 4.1 /usr/bin, /usr/sbin, /usr/lib Estos tres subdirectorios de la carpeta anteriores contienen binarios suplementarios no esenciales. 4.2 /usr/X11R6 Página 6 de 12 ESTRUCTURA DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX Se reserva exclusivamente a las aplicaciones gráficas. Está sub dividido en varias carpeta: bin, lib… 4.3 /usr/games Contiene los archivos binarios de muchos juegos y programas educativos. Este directorio es opcional. 4.4 /usr/include Aquí se encuentran las definiciones de las distintas bibliotecas utilizadas en programación, siendo necesarias para llevar a cabo la compilación de programas1. 4.5 /usr/local Como en el resto de sistemas operativos UNIX, GNU/Linux está diseñado para ser usado en entornos de red, por lo que es bastante frecuente que el directorio /usr no se encuentre en el ordenador local, sino en un servidor. Por ello, el directorio /usr/local está destinado a contener el software que se instale localmente en cada ordenador, y contiene subdirectorios similares a los que se puede encontrar bajo /usr (como /usr/local/bin, /usr/local/sbin, /usr/local/lib, /usr/local/man, etc.). Adicionalmente, encontraremos un directorio /usr/local/etc con idéntica funcionalidad al directorio /etc. Aunque use su ordenador de forma aislada y no en un entorno de red, este es el directorio en el que debería instalar sus programas. Contiene los distintos archivos de ayuda (man, info) y los archivos internacionales de traducción. 4.6 /usr/src Si disponemos del código fuente de un programa, por tener licencia GPL por ejemplo, estará guardado. 4.7 /usr/share Contiene archivos de datos independientes de la arquitectura del sistema, como documentación, howtos, etc. Aquí se encontrar los subdirectorios /man (que contiene manuales de programas) y /misc (que contiene diversos datos independientes de la arquitectura). También se pueden encontrar los subdirectorios /dict, /doc, /games, /info, /locale, /smgl, zoneinfo, etc. 4.8 /usr/X11R6 Contiene todos los programas que componen el entorno gráfico X Window (binarios, bibliotecas y páginas man, por lo que encontraremos directorios como /usr/X11R6/bin /usr/X11R6/lib y /usr/X11R6/man). Este directorio es opcional. 5 La rama /var Este directorio también posee una estructura típica de subdirectorios: 5.1 /var/lib Contiene generalmente los archivos de los sistemas de gestión de bases de datos, como Postgree o MySQL. Enlace a Wikipedia Página 7 de 12 1 ESTRUCTURA DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX 5.2 /var/log Están agrupados los registros del sistema y de aplicaciones. En caso de cualquier fallo en el sistema, los log permiten comprender al administrador porqué ha sucedido y poder solucionar los problemas. 5.3 /var/lock Son los llamados archivos de bloqueo, que son creados automáticamente por las aplicaciones de servidor (archivos, web, impresión, planificador de tareas) cuando se inician para dejar constancia de su ejecución, evitando que su duplicidad. Cuando se detienen las aplicaciones, se borran. 5.4 /var/run Además de los archivos de bloqueo, los servicios crean un archivo que lleva su nombre y contiene el identificador del proceso o PID. 5.5 /var/spool Reúne los archivos de espera de los diferentes servicios propuesto por el sistema. Entre otros están, los trabajos de impresión en espera, la definición de las tareas planificadas o el correo electrónico de los usuarios aún no entregado. 5.6 /var/tmp Es otra ubicación donde se pueden crear archivos temporales. Para una administración del sistema más sencilla es mejor usar solo un directorio que cumpla esta función. 5.7 /var/cache Contiene datos de aplicaciones en cache, como archivos del servidor web y páginas de manual. 6 Otros directorios Algunas distribuciones hacen uso de otros directorios adicionales que suelen montar en el directorio raíz: 6.1 /lost+found Se crea automáticamente en cada partición de Linux al arrancar el sistema y sirve para guardar los archivos recuperados tras un incidente en el sistema. Esta labor la lleva a cabo la herramienta fsch. Si no se produce ningún fallo, este directorio estará vacío. 6.2 /media Es un directorio análogo al estándar /mnt, y contiene los puntos de montaje de los dispositivos extraíbles. 6.3 /windows Algunas distribuciones lo crean si detectan un sistema Microsoft Windows instalado en nuestro equipo, creando dentro de éste tantos subdirectorios como particiones de Windows tengamos (como /windows/C, Página 8 de 12 ESTRUCTURA DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX /windows/D, etc.). Contiene el punto de montaje de estas particiones. 6.4 /srv Aquí se alojan los directorios que usan los distintos servidores que tengamos instalados, como el servidor web (en /srv/www) o el servidor FTP (en /srv/ftp). Página 9 de 12 ESTRUCTURA DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX 7 Montaje y acceso a los medios extraíble A pesar de que en las versiones actuales de los Sistema Unix actuales esta acción se produce automáticamente al conectar un dispositivo, vamos a ver los comandos básicos. El montaje se realiza automáticamente y es la acción que permite el acceso al medio; mientras que el desmontaje es la acción que permite la extracción segura del dispositivo desconectándolo del sistema de archivos. 7.1 Comando mount Función: Permite conectar un dispositivo extraíble al sistema de archivos físico utilizando los archivos asociados ubicados en el directorio /dev. Para poder utilizar este comando hay que tener adjudicado el permiso en el archivo /etc/fstab. Sintaxis: mount /dev/nombre_dispositivo Listado de opciones: -l Muestra un listado con todos los dispositivos montados con el nombre. Ejemplo: josemariatc@curso:~$ mount -l /dev/sda1 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/sda9 on /home type ext3 (rw) /dev/sda8 on /tmp type ext3 (rw) /dev/sda5 on /usr type ext3 (rw) /dev/sda6 on /var type ext3 (rw) fusectl on /sys/fs/fuse/connections type fusectl (rw) binfmt_misc Página 10 de 12 on /proc/sys/fs/binfmt_misc type binfmt_misc COMANDOS RELACIONADOS DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX (rw,noexec,nosuid,nodev) 7.2 Comando umount Función: Permite des conectar un dispositivo extraíble del sistema de archivos físicos. Hay que tener permisos de administrador para ejecutar este comando Sintaxis: umount /dev/nombre_del_dispositivo Ejemplo: josemariatc@curso:~$ umount /dev/sda8 umount: sólo root d80ac01ee1ea desde /tmp puede desmontar UUID=3b7bfbb4-b8df-403f-9d52- 7.3 Comando mdir Función: Lista los archivos contenidos en un directorio que introducimos como argumento. Sintaxis: mdir Nombre_directorio 7.4 Comando mcopy Función: Copiar los archivos de un directorio a otro. Sintaxis: mcopy ruta_origen ruta_destino Página 11 de 12 ESTRUCTURA DEBIAN 6.0 TEMA 4: EL ÁRBOL DE DIRECTORIOS DE LINUX 8 Bibliografía LINUX. Principios básicos del uso del sistema. Ediciones ENI. Serie: Recursos Informáticos. Guía oficial de instalación de Debian 6.0. en el sitio web oficial de Debian. Sitio web oficial del proyecto GNU: http://www.gnu.org/home.es.html. Sitio web oficial del sistema de archivos FHS: http://www.pathname.com/fhs/. Blog del curso: http://cursotecnicoredes2011.wordpress.com Página 12 de 12 BIBLIOGRAFÍA