Búsqueda de sitios web

Cómo habilitar el módulo Userdir de Apache en RHEL/CentOS


Directorio de usuarios o Userdir es un módulo de Apache que permite recuperar directorios específicos de usuarios a través de un servidor web Apache utilizando el http://example.com/ ~usuario/ sintaxis.

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 los userdirs de Apache (mod_userdir) en RHEL, CentOS y Servidores Fedora que utilizan el servidor web Apache.

Este tutorial supone 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, utilice el siguiente comando en su distribución de Linux.

yum install httpd           [On CentOS/RHEL]
dnf install httpd           [On Fedora]

Paso 2: habilite los directorios de usuarios de Apache

Ahora necesitas configurar tu 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 se muestra 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 los directorios UserDir, pero nadie más, utilice 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 deshabilitarlo 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 uno o varios 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 home y public_html del usuario.

chmod 711 /home/tecmint
chown tecmint:tecmint /home/tecmint/public_html
chmod 755 /home/tecmint/public_html

Además, establezca el contexto SELinux correcto para los homedirs de Apache (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 el 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 el 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, explicamos 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.