Habilitación de directorios de usuario

LinuxBeginner
Practicar Ahora

Introducción

Imagine que administra el servidor de una universidad. Quiere que cada estudiante tenga su propio sitio web personal, accesible mediante una URL como university.com/~student1.

En lugar de colocar todos los archivos en un único directorio central, Apache ofrece una función llamada directorios de usuario. Esta función permite que cada usuario aloje un sitio web directamente en su propio directorio personal, normalmente en un subdirectorio llamado public_html.

Esta función es menos común en las grandes plataformas modernas de producción, pero sigue siendo útil para aprender cómo funcionan conjuntamente el mapeo de URL, los permisos y el contenido web de cada usuario.

En este laboratorio, usted:

  1. Habilitará el módulo: activará la función userdir en Apache.
  2. Creará el directorio: configurará la carpeta public_html en su directorio personal.
  3. Configurará los permisos: se asegurará de que Apache tenga los permisos necesarios para acceder a sus archivos.
  4. Realizará una prueba: accederá a su página personal mediante una solicitud del navegador.

Habilitar el módulo Userdir

Apache es un servidor modular, lo que significa que puede habilitar o deshabilitar funciones específicas según sea necesario. El módulo userdir se encarga de asociar URL como ~username con el directorio personal del usuario.

Este diseño modular es una de las características distintivas de Apache. Muchas funciones no están activas de forma predeterminada; en su lugar, los administradores habilitan los módulos que necesitan para una función concreta del servidor.

Compruebe el estado de Apache para asegurarse de que está en ejecución:

sudo service apache2 status

Habilite el módulo userdir mediante el comando a2enmod (Apache 2 Enable Module):

El asistente a2enmod forma parte de las convenciones de empaquetado de Apache en Ubuntu. Simplifica la administración de módulos al crear los enlaces simbólicos adecuados, en lugar de obligarle a editarlos manualmente.

sudo a2enmod userdir

Debería ver un mensaje que indique que el módulo se está habilitando.

Para confirmarlo, muestre la lista de módulos habilitados:

ls /etc/apache2/mods-enabled/ | grep userdir

Debería ver userdir.conf y userdir.load, lo que confirma que el módulo está activo.

Configurar el directorio web

El módulo userdir busca una carpeta llamada public_html dentro del directorio personal del usuario. En este laboratorio, su nombre de usuario es labex.

Vaya a su directorio personal:

cd ~

Cree el directorio public_html:

mkdir ~/public_html

Cree un archivo index.html sencillo dentro de este directorio para probar su sitio:

echo "<h1>My Personal Page</h1><p>Welcome to the labex user directory.</p>" > ~/public_html/index.html

A continuación, debe ocuparse de los permisos. De forma predeterminada, los directorios personales de los usuarios suelen ser privados, lo que impide que el usuario de Apache (www-data) pueda acceder a ellos. Apache necesita permiso de ejecución (x) sobre su directorio personal para acceder a la carpeta public_html que se encuentra dentro de él.

Este es un buen ejemplo de cómo el servicio de archivos web depende de los permisos normales del sistema de archivos de Linux. Apache solo puede servir archivos que tenga permiso para recorrer y leer.

Cambie los permisos de su directorio personal:

chmod 711 /home/labex
  • 711 (rwx--x--x) le proporciona control total, al tiempo que permite que otros usuarios, como Apache, recorran el directorio —permiso de ejecución—, pero no enumeren su contenido —permiso de lectura—.

La diferencia entre los permisos de lectura y ejecución en los directorios es sutil, pero importante. El permiso de ejecución sobre un directorio significa «puede entrar en él o recorrerlo», mientras que el permiso de lectura significa «puede enumerar su contenido».

Verifique los permisos:

ls -ld /home/labex

Debería ver que los permisos terminan en x, lo que indica que se permite recorrer el directorio.

Reiniciar el servicio

Después de habilitar un módulo o cambiar la configuración, debe reiniciar Apache para que los cambios surtan efecto.

Reinicie el servicio de Apache:

sudo service apache2 restart

Compruebe que Apache se haya reiniciado correctamente:

sudo service apache2 status

El estado debería ser active (running).

Verificar la configuración

Ahora que todo está configurado, pruebe su página web personal.

El formato de la URL es http://server_address/~username/. Como está trabajando directamente en el servidor, utilizará localhost.

Use curl para obtener la página:

curl http://localhost/~labex/

Debería ver el contenido HTML que creó:

<h1>My Personal Page</h1>
<p>Welcome to the labex user directory.</p>

Si aparece un error 403 Forbidden, vuelva a comprobar los permisos de su directorio personal (/home/labex) y del directorio public_html.

Resumen

En este laboratorio, configuró correctamente directorios web personales. Aprendió a:

  • Habilitar el módulo userdir de Apache.
  • Crear y rellenar el directorio public_html.
  • Configurar los permisos del directorio para permitir el acceso de Apache y mantener la seguridad.
  • Verificar la configuración accediendo a la URL específica del usuario.

Esta función se utiliza ampliamente en entornos educativos y de alojamiento compartido para proporcionar a los usuarios su propio espacio web.