ubuntu2

La estructura de GNU/Linux

Nos acercamos al final de este curso de inicio en Ubuntu GNU/Linux. Un viaje de 10 entregas para darte una idea aproximada de lo que es el sistema operativo GNU/Linux en general y Ubuntu en particular.

En esta novena entrega hablaremos sobre la estructura y la jerarquía de directorios en Ubuntu, que es la misma que las demás distribuciones GNU/Linux salvo un par de ellas.

linux-filesystem-hierarchy-standard

Ubuntu (como todos los sistemas de tipo UNIX) organiza los archivos en un árbol jerárquico.

Principales directorios

La estructura de directorios estándar de Ubuntu sigue principalmente el estándar de la jerarquía del sistema de archivos. Aquí sólo se presentarán los directorios más importantes del sistema:

/bin es un lugar para los comandos de terminal más usados, como ls, mount, rm, etc.

/boot contiene los archivos necesarios para iniciar el sistema, incluyendo el Kernel de Linux, una imagen de disco RAM y los archivos de configuración del cargador de arranque.

/dev contiene todos los archivos de dispositivo, que no son archivos regulares sino que se refieren a varios dispositivos de hardware en el sistema, incluyendo discos duros o tarjetas flash conectadas.

/etc contiene ficheros de configuración global del sistema, que afectan al comportamiento del sistema para todos los usuarios.

/home este es el lugar para los directorios de inicio de los usuarios.

/lib contiene librerías dinámicas y módulos de Kernel muy importantes.

/lost+found todos los archivos dañados encontrados se colocarán en el directorio lost+found, para que puedas intentar recuperar la mayor cantidad de datos posible.

/media es un punto de montaje para dispositivos externos, como discos duros o medios extraíbles (disquetes, CDs, DVDs).

/mnt es también un lugar para puntos de montaje, pero dedicado específicamente a dispositivos “montados temporalmente”, como los sistemas de ficheros de red.

/opt puede ser usado para almacenar software adicional para tu sistema, el cual no es manejado por el administrador de paquetes.

/proc es un sistema de ficheros virtual que proporciona un mecanismo para que el núcleo envíe información a los procesos.

/root es el directorio raíz del superusuario, para permitir el arranque del sistema incluso si /home/ no está disponible.

/run es un tmpfs (sistema de ficheros temporal) disponible al principio del proceso de arranque donde se almacenan datos efímeros en tiempo de ejecución. Los archivos de este directorio se eliminan o se truncan al principio del proceso de arranque.
(Deprecia varias ubicaciones heredadas como /var/run, /var/lock, /lib/init/rw en árboles de directorios no efímeros, así como /dev/.* y /dev/shm que no son archivos de dispositivo).

/sbin contiene importantes comandos administrativos que generalmente sólo deberían ser empleados por el superusuario.

/srv puede contener directorios de datos de servicios como HTTP (/srv/www/) o FTP.

/sys es un sistema de ficheros virtual al que se puede acceder para establecer u obtener información sobre la vista del Kernel del sistema.

/tmp es un lugar para archivos temporales usados por las aplicaciones.

/usr contiene la mayoría de las utilidades y aplicaciones de usuario, y replica parcialmente la estructura de directorios raíz, conteniendo por ejemplo, entre otros, /usr/bin/ y /usr/lib.

/var está dedicado a datos variables, como registros, bases de datos, sitios web y archivos temporales de spool (correo electrónico, etc.) que persisten de un arranque al siguiente. Un directorio notable que contiene es /var/log donde se guardan los archivos de registro del sistema.

La jerarquía de directorios de GNU/Linux es muy similar a otros sistemas operativos relacionados con UNIX, como las distribuciones BSD y macOS.

Ahora expliquemos qué es cada directorio. Fíjate que en alguna distribución diferente de Ubuntu puede aparecer otro Directorio que no es común en Ubuntu, pero los tocaremos del mismo modo.

Sistem

/ – El directorio Root

Todo en tu sistema Ubuntu se encuentra bajo el directorio /, conocido como el directorio raíz. Puedes pensar que el directorio / es similar al directorio C:\ de Windows – pero esto no es estrictamente cierto, ya que Linux no tiene letras de unidad. Mientras que otra partición estaría ubicada en D:\ en Windows, esta otra partición aparecería en otra carpeta bajo / en GNU/Linux.

/bin – Binarios de usuario esenciales

El directorio /bin contiene los binarios de usuario esenciales (programas) que deben estar presentes cuando el sistema está montado en modo monopuesto. Las aplicaciones como Firefox se almacenan en /usr/bin, mientras que los programas y utilidades importantes del sistema, como el shell bash, se encuentran en /bin. El directorio /usr puede ser almacenado en otra partición – colocando estos ficheros en el directorio /bin se asegura de que el sistema tendrá estas importantes utilidades incluso si no hay otros sistemas de ficheros montados. El directorio /sbin es similar – contiene binarios esenciales para la administración del sistema.

/boot – Archivos de arranque estáticos

El directorio /boot contiene los archivos necesarios para arrancar el sistema – por ejemplo, los archivos del gestor de arranque de GRUB y los núcleos del Kernel se almacenan aquí. Sin embargo, los archivos de configuración del gestor de arranque no se encuentran aquí, sino en /etc con los otros archivos de configuración.

/cdrom – Punto de montaje histórico para CD-ROMs

El directorio /cdrom no es parte del estándar FHS, pero lo encontrarás en Ubuntu y otros sistemas operativos. Es una ubicación temporal para los CD-ROMs insertados en el sistema. Sin embargo, la ubicación estándar para los medios temporales está dentro del directorio /media.

/dev – Archivos de dispositivo

Ubuntu expone los dispositivos como archivos, y el directorio /dev contiene un número de archivos especiales que representan a los dispositivos. Estos no son archivos reales como los conocemos, pero aparecen como archivos – por ejemplo, /dev/sda representa la primera unidad SATA en el sistema. Si deseas particionarla, puedes iniciar un editor de particiones y decirle que edite /dev/sda.

Este directorio también contiene pseudo-dispositivos, que son dispositivos virtuales que en realidad no se corresponden con el hardware. Por ejemplo, /dev/random produce números aleatorios. /dev/null es un dispositivo especial que no produce ninguna salida y descarta automáticamente todas las entradas – cuando se canaliza la salida de un comando a /dev/null, se descarta.

/etc – Archivos de configuración

El directorio /etc contiene archivos de configuración, que generalmente pueden ser editados a mano en un editor de texto. Ten en cuenta que el directorio /etc/ contiene archivos de configuración para todo el sistema – los archivos de configuración específicos del usuario se encuentran en el directorio principal de cada usuario.

/home – Carpeta de inicio

El directorio /home contiene una carpeta de inicio para cada usuario. Por ejemplo, si tu nombre de usuario es Alex, tienes una carpeta de inicio en /home/alex. Esta carpeta de inicio contiene los archivos de datos del usuario y los archivos de configuración específicos del usuario. Cada usuario sólo tiene acceso de escritura a su propia carpeta de inicio y debe obtener permisos elevados (convertirse en el usuario root) para modificar otros archivos en el sistema. Sin embargo, auqnue el usuario no tenga permisos de root, puede modificar algunas cosas, como los iconos, los temas, wallpapers, etc. Dentro del espacio de usuario, hay una ruta que emula /usr/share y está en este ejemplo en /home/alex/.local/share.

/lib – Bibliotecas compartidas esenciales

El directorio /lib contiene las bibliotecas que necesitan los binarios esenciales de las carpetas /bin y /sbin. Las librerías necesarias para los binarios en la carpeta /usr/bin se encuentran en /usr/lib.

/lost+found – Archivos recuperados

Cada sistema de archivos GNU/Linux tiene un directorio lost+found. Si el sistema de archivos se bloquea, se realizará una comprobación del sistema de archivos en el siguiente arranque. Todos los archivos dañados encontrados se colocarán en el directorio lost+found, para que puedas intentar recuperar la mayor cantidad de datos posible.

/media – Medios extraíbles

El directorio /media contiene subdirectorios donde se montan los dispositivos de medios extraíbles insertados en el ordenador. Por ejemplo, al insertar un CD en tu sistema Ubuntu, se creará automáticamente un directorio dentro del directorio /media. Puedes acceder al contenido del CD dentro de este directorio.

/mnt – Puntos de montaje temporales

Históricamente hablando, el directorio /mnt es donde los administradores de sistemas montan sistemas de ficheros temporales mientras los usan. Por ejemplo, si estás montando una partición de Windows para realizar algunas operaciones de recuperación de archivos, puedes montarla en /mnt/windows. Sin embargo, puedes montar otros sistemas de archivos en cualquier parte del sistema.

/opt – Paquetes opcionales

El directorio /opt contiene subdirectorios para paquetes de software opcionales. Es comúnmente usado por software privativo que no obedece la jerarquía estándar del sistema de archivos – por ejemplo, un programa privativo puede volcar sus archivos en /opt/application cuando lo instalas.

/proc – Archivos de núcleo y de proceso

El directorio /proc es similar al directorio /dev porque no contiene archivos estándar. Contiene archivos especiales que representan la información del sistema y del proceso.

/root – Directorio raíz de inicio

El directorio /root es el directorio raíz del usuario root. En lugar de estar ubicado en /home/root, está ubicado en /root. Esto es distinto de /, que es el directorio raíz del sistema.

/run – Archivos de estado de la aplicación

El directorio /run es bastante nuevo, y da a las aplicaciones un lugar estándar para almacenar los archivos transitorios que necesitan como sockets e IDs de proceso. Estos archivos no pueden ser almacenados en /tmp porque los archivos en /tmp pueden ser borrados.

/sbin – Binarios de administración de sistemas

El directorio /sbin es similar al directorio /bin. Contiene binarios esenciales que generalmente están destinados a ser ejecutados por el usuario root para la administración del sistema.

/srv – Datos de servicio

El directorio /srv contiene “datos de los servicios prestados por el sistema”. Si estás usando el servidor HTTP Apache para servir un sitio web, es probable que guardes los archivos de tu sitio web en un directorio dentro del directorio /srv.

/tmp – Archivos temporales

Las aplicaciones almacenan archivos temporales en el directorio /tmp. Estos archivos generalmente se eliminan cada vez que se reinicia el sistema y pueden ser eliminados en cualquier momento por utilidades como tmpwatch.

/usr – Binarios de usuario y datos de sólo lectura

El directorio /usr contiene aplicaciones y ficheros utilizados por los usuarios, a diferencia de las aplicaciones y ficheros utilizados por el sistema. Por ejemplo, las aplicaciones no esenciales se encuentran dentro del directorio /usr/bin en lugar del directorio /bin y los binarios de administración del sistema no esenciales se encuentran en el directorio /usr/sbin en lugar del directorio /sbin. Las librerías para cada una de ellas se encuentran dentro del directorio /usr/lib. El directorio /usr también contiene otros directorios – por ejemplo, los archivos independientes de la arquitectura como los gráficos se encuentran en /usr/share.

Para terminar este tema hay que recordar una cosa muy importante. El directorio de inicio del usuario localizado en /home tiene permisos de escritura y lectura y eres el propietario. Todos los demás directorios son considerados “críticos” y solo tienen permiso de lectura, y a veces ni eso. Para manipular algo necesitarás permiso de root. Es una de las principales razones por las que los sistemas UNIX son muy seguros. Por ello se dice que hay dos espacios, el de usuario y el de root. Si no sabes lo que haces, jamás uses los privilegios elevados de superadministrador.

Aunque Ubuntu es considerado muy seguro, no está exento de vulnerabilidades. Es muy importante que confiemos en los programas que se instalan desde la tienda de software de Ubuntu o de Synaptic y no mucho de lo que descargas de internet ni de los PPA. Todo lo que sea instalar un paquete ya significa un riesgo para el sistema.

 

Fuente: maslinux

¿Quién está en línea?

Hay 1166 invitados y ningún miembro en línea