1. Parte I. Sistemas de archivos
El Sistema de archivos hace referencia a los directorios y archivos almacenados en un computador.
Un sistema de archivos puede tener diferentes formatos llamados tipos de sistemas de archivos.
Estos formatos determinan la forma en que los archivos y directorios son almacenados. Algunos
sistemas de archivos almacenan copias redundantes de los datos mientras que otros archivos
permiten un fácil acceso al disco duro. Esta sección discute los tipos de archivos ext3, swap, RAID y
LVM. Asimismo discute la utilidad parted utilizada para administrar particiones y las listas de control
de acceso (ACL) usadas para personalizar los permisos a los archivos.
2. 3
Estructura del sistema de archivos
1.1. Por qué compartir una estructura común
La estructura de un sistema de archivos de un sistema operativo es el nivel más básico de
organización. Casi todas las formas en que un sistema operativo interactúa con sus usuarios,
aplicaciones y modelos de seguridad dependen de la manera en que almacena y organiza los
archivos en los dispositivo de almacenamiento. El proporcionar una estructura de sistema de archivos
común asegura que los usuarios y programas pueden acceder y escribir a los archivos.
Los sistemas de archivos dividen los archivos en dos categorías lógicas:
• Shareable vs. unshareable files
• archivos variables vs. estáticos
Shareable files are those that can be accessed locally and by remote hosts; unshareable files are only
available locally. Variable files, such as documents, can be changed at any time; static files, such as
binaries, do not change without an action from the system administrator.
La razón para visualizar a los archivos de esta manera es para ayudar a correlacionar la función del
archivo con los permisos otorgados a los directorios que los sostienen. El modo en que el sistema
operativo y sus usuarios interactúan con un archivo dado determina el directorio en el cual estos
archivos están ubicados, si ese directorio está montado como de sólo lectura o sólo escritura y el nivel
de acceso que cada usuario tiene a ese archivo. El nivel superior de esta organización es crucial.
El acceso a los directorios inferiores puede estar restringido o se pueden manifestar problemas de
seguridad si el nivel superior es dejado sin organizar o no sigue ninguna estructura rígida.
1.2. Vista preliminar del estándar de jerarquía del sistema
de archivos (FHS)
Red Hat Enterprise Linux utiliza la estructura del sistema de archivos Estándar de Jerarquía de
Sistemas de archivos (FHS del inglés Filesystem Hierarchy Standard), un documento que define los
nombres, la ubicación y los permisos de muchos tipos de archivos y directorios.
El documento que define el FHS es la referencia autorizada para cualquier sistema compatible FHS,
sin embargo el estándar da pie a la extensibilidad de unas áreas o no define otras. En esta sección
se proporciona un resumen del estándar y una descripción de aquellas partes del sistema de archivos
que no cubre el estándar.
El cumplimiento del estándar significa varias cosas, pero los dos aspectos más importantes son la
compatibilidad con otros sistemas que siguen el estándar y la capacidad de poder montar la partición
/usr/ en modo sólo lectura. Este segundo punto es importante porque el directorio contiene
ejecutables comunes y no está pensado para ser alterado por los usuarios. Por este motivo, el
directorio /usr/ se monta como de sólo lectura, y esto se puede hacer directamente desde el CD-
ROM o desde otro ordenador a través de NFS en modo sólo lectura.
1.2.1. Organización de FHS
Los directorios y archivos aquí anotados, son sólo un subconjunto de los especificados por el FHS.
Véase la última versión del FHS para una descripción detallada.
3. 4
Organización de FHS
El estándar completo está disponibleen línea desde http://www.pathname.com/fhs/
1
.
1.2.1.1. El directorio /boot/
El directorio /boot/ contiene archivos estáticos requeridos para arrancar el sistema, tales como el
kernel de Linux. Estos archivos son esenciales para que el sistema arranque correctamente.
Aviso
No elimine el directorio /boot/. Si lo hace, entonces no podrá arrancar su sistema.
1.2.1.2. El directorio /dev/
The /dev/ directory contains device nodes that either represent devices that are attached to the
system or virtual devices that are provided by the kernel. These device nodes are essential for the
system to function properly. The udev daemon takes care of creating and removing all these device
nodes in /dev/.
Devices in the /dev directory and subdirectories are either character (providing only a serial stream
of input/output) or block (accessible randomly). Character devices include mouse, keyboard, modem
while block devices include hard disk, floppy drive etc. If you have GNOME or KDE installed in
your system, devices such as external drives or cds are automatically detected when connected (e.g
via usb) or inserted (e.g via CD or DVD drive) and a popup window displaying the contents is
automatically displayed. Files in the /dev directory are essential for the system to function properly.
File Description
/dev/hda The master device on primary IDE channel.
/dev/hdb The slave device on primary IDE channel.
/dev/tty0 The first virtual console.
/dev/tty1 The second virtual console.
/dev/sda The first device on primary SCSI or SATA
channel.
/dev/lp0 The first parallel port.
Tabla 1.1. Examples of common files in the /dev
1.2.1.3. El directorio /etc/
El directorio /etc/ está reservado para los archivos de configuración que son locales a su ordenador.
No deben colocarse binarios en /etc/. Los binarios que antiguamente se colocaban en /etc/
deberían de colocarse en /sbin/ o en /bin/.
Ejemplos de directorios en /etc son X11/ y skel/:
/etc
|- X11/
1
http://www.pathname.com/fhs
4. 5
Organización de FHS
|- skel/
The /etc/X11/ directory is for X Window System configuration files, such as xorg.conf. The /
etc/skel/ directory is for "skeleton" user files, which are used to populate a home directory when a
user is first created. Applications also store their configuration files in this directory and may reference
them when they are executed.
1.2.1.4. El directorio /lib/
El directorio /lib/ debería contener sólo las bibliotecas (libraries) necesarias para ejecutar los
binarios en /bin/ y en /sbin/. Estas imágenes de bibliotecas compartidas son particularmente
importantes para arrancar el sistema y ejecutar comandos en el sistema de archivos raíz.
1.2.1.5. El directorio /media/
El directorio /media/ contiene los subdirectorios utilizados como puntos de montaje para los medios
removibles tales como usbs, DVDs, CD-ROMs y discos Zip.
1.2.1.6. El directorio /mnt/
El directorio /mnt/ está reservado para sistemas de archivos montados temporalmente tales como
montajes de sistemas de archivos NFS. Para toda los medios removibles utilice el directorio /
media/. Los medios removibles detectados automáticamente serán montados en el directorio /
media.
Nota
El directorio /mnt no debe ser utilizado por programas de instalación.
1.2.1.7. El directorio /opt/
El directorio /opt/ proporciona un área para almacenar paquetes de software de una aplicación.
Un paquete que coloca archivos en el directorio /opt/ crea un directorio con el mismo nombre
del paquete. Este directorio a su vez, guarda archivos que de otra forma estarían esparcidos por el
sistema de archivos, dándole así al administrador del sistema una forma fácil de determinar el papel
de cada archivo dentro de un paquete particular.
Por ejemplo, si sample fuese el nombre de un paquete de software particular localizado en el
directorio /opt/, entonces todos sus archivos podrían ser emplazados en directorios dentro de /
opt/sample/, tales como /opt/sample/bin/ para binarios y /opt/sample/man/ para páginas
de manual.
Los paquetes que abarcan diferentes subpaquetes, archivos de datos, extra fuentes, clipart, etc
también se ubican dentro del directorio /opt/, aportando a este gran paquete un manera de
organizarse. De este modo, el paquete sample puede tener diferentes herramientas que cada una irá
en su propio subdirectorio tales como /opt/sample/tool1/ y /opt/sample/tool2/ cada uno de
los cuales puede tener su propio bin/, man/ y otros directorios similares.
5. 6
Organización de FHS
1.2.1.8. El directorio /proc/
El directorio /proc/ contiene archivos especiales que o bien extraen información del kernel o bien la
envían a éste. Algunos ejemplos son la memoria del sistema, información sobre la cpu, configuración
del hardware, etc.
Due to the great variety of data available within /proc/ and the many ways this directory can be
used to communicate with the kernel, an entire chapter has been devoted to the subject. For more
information, refer to Capítulo 3, El sistema de archivos /proc.
1.2.1.9. El directorio /sbin/
The /sbin/ directory stores executables used by the root user. The executables in /sbin/ are used
at boot time, for system administration and to perform system recovery operations. Of this directory,
the FHS says:
/sbin contains binaries essential for booting, restoring, recovering, and/or repairing
the system in addition to the binaries in /bin. Programs executed after /usr/ is
known to be mounted (when there are no problems) are generally placed into /usr/
sbin. Locally-installed system administration programs should be placed into /usr/
local/sbin.
Los siguientes programas deberían encontrarse, al menos, en /sbin/:
arp, clock,
halt, init,
fsck.*, grub,
ifconfig, mingetty,
mkfs.*, mkswap,
reboot, route,
shutdown, swapoff,
swapon
1.2.1.10. El directorio /srv/
El directorio /srv/ contiene datos específicos al sitio proporcionados por su sistema ejecutando Red
Hat Enterprise Linux. Este directorio le dá a los usuarios la ubicación de los archivos de datos para
un servicio en particular tal como FTP, WWW o CVS. Los datos que sólo pertenecen a un usuario
específico deben ir en el directorio /home/.
1.2.1.11. El directorio /sys/
El directorio /sys/ utiliza el nuevo sistema de archivos virtual sysfs específico al kernel 2.6. Ahora
con el soporte más extendido para los dispositivos de conexión en caliente (hot plug) en el kernel
2.6, el directorio /sys/ contiene información similar a la que se encuentra en /proc/, pero muestra
una vista jerárquica de la información de dispositivos específica con relación a los dispositivos de
conexión en caliente.
1.2.1.12. El directorio /usr/
El directorio /usr/ es para archivos que puedan ser compartidos a través de muchas máquinas. El
directorio /usr/ habitualmente tiene su propia partición y se monta en sólo lectura. Como mínimo,
los siguientes directorios deben ser subdirectorios de /usr/:
6. 7
Organización de FHS
/usr
|- bin/
|- etc/
|- games/
|- include/
|- kerberos/
|- lib/
|- libexec/
|- local/
|- sbin/
|- share/
|- src/
|- tmp -> ../var/tmp/
Bajo el directorio /usr/, el subdirectorio bin/ contiene ejecutables, el directorio etc/ contiene
archivos de configuración del sistema, games es para juegos, include/ contiene los archivos
de cabecera C, kerberos/ contiene binarios y otros archivos relacionados con Kerberos y lib/
contiene archivos objeto y bibliotecas que no están diseñadas para ser utilizadas directamente por
usuarios o scripts de shell. El directorio libexec/ contiene pequeños programas de ayuda
llamados por otros programas, sbin/ es para los binarios de administración del sistema (aquéllos
que no pertenecen al directorio /sbin/), share/ contiene archivos que no son de una arquitectura
específica, src/ es para código fuente.
1.2.1.13. El directorio /usr/local/
The FHS says:
The /usr/local hierarchy is for use by the system administrator when installing
software locally. It needs to be safe from being overwritten when the system software
is updated. It may be used for programs and data that are shareable among a group
of hosts, but not found in /usr.
El directorio /usr/local/ es similar en estructura al directorio /usr/. Tiene los siguientes
subdirectorios, que son similares en propósito a los del directorio /usr/:
/usr/local
|- bin/
|- etc/
|- games/
|- include/
|- lib/
|- libexec/
|- sbin/
|- share/
|- src/
En Red Hat Enterprise Linux el propósito del directorio /usr/local/ es ligeramente diferente de
lo especificado por FHS. El FHS establece que en /usr/local/ debería memorizarse el software
que permanece seguro de las actualizaciones de software de sistemas. Ya que las actualizaciones
de sistemas se pueden realizar de forma segura con el Red Hat Package Manager (RPM), no es
necesario proteger archivos poniéndolos en /usr/local/. En vez de esto, el directorio /usr/
local/ es utilizado para software es decir local a la máquina.
Por ejemplo, si usted ha montado /usr/ sólo lectura de NFS desde un host remoto, aún es posible
instalar un paquete o programa bajo el directorio /usr/local/.
7. 8
Organización de FHS
1.2.1.14. El directorio /var/
Since the FHS requires Linux to mount /usr/ as read-only, any programs that write log files or need
spool/ or lock/ directories should write them to the /var/ directory. The FHS states /var/ is for:
...variable data files. This includes spool directories and files, administrative and
logging data, and transient and temporary files.
Abajo se muestran algunos de los directorios encontrados dentro del directorio /var/:
/var
|- account/
|- arpwatch/
|- cache/
|- crash/
|- db/
|- empty/
|- ftp/
|- gdm/
|- kerberos/
|- lib/
|- local/
|- lock/
|- log/
|- mail -> spool/mail/
|- mailman/
|- named/
|- nis/
|- opt/
|- preserve/
|- run/
+- spool/
|- at/
|- clientmqueue/
|- cron/
|- cups/
|- exim/
|- lpd/
|- mail/
|- mailman/
|- mqueue/
|- news/
|- postfix/
|- repackage/
|- rwho/
|- samba/
|- squid/
|- squirrelmail/
|- up2date/
|- uucp
|- uucppublic/
|- vbox/
|- tmp/
|- tux/
|- www/
|- yp/
Los archivos de registro del sistema tales como messages y lastlog van en el directorio /var/
log/. El directorio /var/lib/rpm/ contiene las bases de datos RPM. Los archivos lock van en
el directorio /var/lock/, habitualmente en directorios para el programa utilizando el archivo. El
8. 9
Ubicación de Archivos Especiales bajo Red Hat Enterprise Linux
directorio /var/spool/ tiene subdirectorios para programas en los que se almacenan
archivos de datos.
1.3. Ubicación de Archivos Especiales bajo Red Hat
Enterprise Linux
Red Hat Enterprise Linux extiende un poco la estructura de FHS para acomodar archivos
especiales.
Most files pertaining to RPM are kept in the /var/lib/rpm/ directory. For more information
on RPM, refer to the chapter Capítulo 10, Administración de paquetes con RPM.
El directorio /var/cache/yum/ contiene los archivos que usa el Package Updater,
incluyendo la información de cabecera del RPM para el sistema. Esta ubicación también
se puede utilizar temporalmente para almacenar los RPMs descargados durante la
actualización del sistema. Para mayor información sobre Red Hat Network consulte la
documentación disponible en el sitio https:// rhn.redhat.com/.
Another location specific to Red Hat Enterprise Linux is the /etc/sysconfig/ directory.
This directory stores a variety of configuration information. Many scripts that run at boot time
use the files in this directory. Refer to Capítulo 28, El directorio sysconfig for more
information about what is within this directory and the role these files play in the boot process.