Cómo habilitar el módulo Userdir de Apache en RHEL / CentOS
User Directory o Userdir es un módulo de Apache, que permite recuperar directorios específicos del usuario a través de un servidor web Apache usando la sintaxis http://example.com/~user/
.
Por ejemplo, cuando el módulo mod_userdir está habilitado, las cuentas de los usuarios en el sistema podrán acceder al contenido de sus directorios personales con el mundo a través del servidor web Apache.
En este artículo, le mostraremos cómo habilitar las direcciones de usuario de Apache (mod_userdir) en los servidores RHEL, CentOS y Fedora utilizando el servidor web Apache.
Este tutorial asume que ya tiene el servidor web Apache instalado en su distribución de Linux. Si no lo ha hecho, puede instalarlo mediante el siguiente procedimiento ...
Paso 1: Instale el servidor HTTP Apache
Para instalar el servidor web Apache, use el siguiente comando en su distribución de Linux.
# yum install httpd [On CentOS/RHEL] # dnf install httpd [On Fedora]

Paso 2: Habilite las direcciones de usuario de Apache
Ahora necesita configurar su servidor web Apache para usar este módulo en el archivo de configuración /etc/httpd/conf.d/userdir.conf
, que ya está configurado con las mejores opciones.
# vi /etc/httpd/conf.d/userdir.conf
Luego, valide el contenido como a continuación.
# directory if a ~user request is received. # # The path to the end user account 'public_html' directory must be # accessible to the webserver userid. This usually means that ~userid # must have permissions of 711, ~userid/public_html must have permissions # of 755, and documents contained therein must be world-readable. # Otherwise, the client will only receive a "403 Forbidden" message. # <IfModule mod_userdir.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions). # UserDir enabled tecmint # # To enable requests to /~user/ to serve the user's public_html # directory, remove the "UserDir disabled" line above, and uncomment # the following line instead: # UserDir public_html </IfModule> # # Control access to UserDir directories. The following is an example # for a site where these directories are restricted to read-only. # <Directory "/home/*/public_html"> ## Apache 2.4 users use following ## AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS ## Apache 2.2 users use following ## Options Indexes Includes FollowSymLinks AllowOverride All Allow from all Order deny,allow </Directory>

Para permitir que algunos usuarios tengan acceso a directorios UserDir
, pero no a nadie más, use la siguiente configuración en el archivo de configuración.
UserDir disabled UserDir enabled testuser1 testuser2 testuser3
Para permitir que todos los usuarios tengan acceso a los directorios UserDir
, pero deshabilítelo para algunos usuarios, use la siguiente configuración en el archivo de configuración.
UserDir enabled UserDir disabled testuser4 testuser5 testuser6
Una vez que haya realizado los ajustes de configuración según sus requisitos, debe reiniciar el servidor web Apache para aplicar los cambios recientes.
# systemctl restart httpd.service [On SystemD] # service httpd restart [On SysVInit]
Paso 3: crear directorios de usuarios
Ahora necesita crear un directorio/directorios public_html
en los directorios de inicio de usuario/usuarios. Por ejemplo, aquí estoy creando un directorio public_html
en el directorio de inicio del usuario de tecmint.
# mkdir /home/tecmint/public_html
A continuación, aplique los permisos correctos en los directorios de inicio del usuario y public_html.
# chmod 711 /home/tecmint # chown tecmint:tecmint /home/tecmint/public_html # chmod 755 /home/tecmint/public_html

Además, configure el contexto SELinux correcto para Apache homedirs (httpd_enable_homedirs).
# setsebool -P httpd_enable_homedirs true # chcon -R -t httpd_sys_content_t /home/tecmint/public_html
Paso 4: Pruebe el directorio de usuario de Apache habilitado
Finalmente, verifique Userdir apuntando su navegador al nombre de host del servidor o la dirección IP seguido del nombre de usuario.
http://example.com/~tecmint OR http://192.168.0.105/~tecmint

Si lo desea, también puede probar páginas HTML e información PHP creando los siguientes archivos.
Cree un archivo /home/tecmint/public_html/test.html con el siguiente contenido.
<html> <head> <title>TecMint is Best Site for Linux</title> </head> <body> <h1>TecMint is Best Site for Linux</h1> </body> </html>

Cree el archivo /home/tecmint/public_html/test.php con el siguiente contenido.
<?php phpinfo(); ?>

¡Eso es todo! En este artículo, hemos explicado cómo habilitar el módulo Userdir para permitir a los usuarios compartir contenido desde sus directorios de inicio. Si tiene preguntas sobre este artículo, no dude en preguntar en la sección de comentarios a continuación.