Recherche de site Web

Comment activer le module Apache Userdir sur RHEL/CentOS


User Directory ou Userdir est un module Apache, qui permet de récupérer des répertoires spécifiques à l'utilisateur via un serveur Web Apache à l'aide du http://example.com/ Syntaxe ~utilisateur/.

Par exemple, lorsque le module mod_userdir est activé, les comptes des utilisateurs sur le système pourront accéder au contenu de leurs répertoires personnels avec le monde via le serveur Web Apache.

Dans cet article, nous allons vous montrer comment activer les userdirs Apache (mod_userdir) sur RHEL, CentOS et Serveurs Fedora utilisant le serveur Web Apache.

Ce didacticiel suppose que le serveur Web Apache est déjà installé sur votre distribution Linux. Si ce n’est pas le cas, vous pouvez l’installer en suivant la procédure suivante…

Étape 1 : Installer le serveur HTTP Apache

Pour installer le serveur Web Apache, utilisez la commande suivante sur votre distribution Linux.

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

Étape 2 : Activer les répertoires utilisateur Apache

Vous devez maintenant configurer votre serveur Web Apache pour utiliser ce module dans le fichier de configuration /etc/httpd/conf.d/userdir.conf, qui est déjà configuré avec les meilleures options.

vi /etc/httpd/conf.d/userdir.conf

Validez ensuite le contenu comme ci-dessous.

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>

Pour permettre à quelques utilisateurs d'accéder aux répertoires UserDir, mais à personne d'autre, utilisez le paramètre suivant dans le fichier de configuration.

UserDir disabled
UserDir enabled testuser1 testuser2 testuser3

Pour permettre à tous les utilisateurs d'accéder aux répertoires UserDir, mais désactiver cela pour quelques utilisateurs, utilisez le paramètre suivant dans le fichier de configuration.

UserDir enabled
UserDir disabled testuser4 testuser5 testuser6

Une fois que vous avez défini les paramètres de configuration selon vos besoins, vous devez redémarrer le serveur Web Apache pour appliquer les modifications récentes.

systemctl restart httpd.service  [On SystemD]
service httpd restart            [On SysVInit]

Étape 3 : Création de répertoires d'utilisateurs

Vous devez maintenant créer un ou plusieurs répertoires public_html dans les répertoires personnels des utilisateurs. Par exemple, je crée ici un répertoire public_html sous le répertoire personnel de l'utilisateur de tecmint.

mkdir /home/tecmint/public_html

Ensuite, appliquez les autorisations appropriées sur les répertoires home et public_html de l'utilisateur.

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

Définissez également le contexte SELinux correct pour les homedirs Apache (httpd_enable_homedirs).

setsebool -P httpd_enable_homedirs true
chcon -R -t httpd_sys_content_t /home/tecmint/public_html

Étape 4 : tester le répertoire utilisateur Apache activé

Enfin, vérifiez le Userdir en pointant votre navigateur vers le nom d'hôte ou l'adresse IP du serveur suivi du nom d'utilisateur.

http://example.com/~tecmint
OR
http://192.168.0.105/~tecmint

Si vous le souhaitez, vous pouvez également tester les pages HTML et les informations PHP en créant les fichiers suivants.

Créez le fichier /home/tecmint/public_html/test.html avec le contenu suivant.

<html>
  <head>
    <title>TecMint is Best Site for Linux</title>
  </head>
  <body>
    <h1>TecMint is Best Site for Linux</h1>
  </body>
</html>

Créez le fichier /home/tecmint/public_html/test.php avec le contenu suivant.

<?php
  phpinfo();
?>

C'est tout! Dans cet article, nous avons expliqué comment activer le module Userdir pour permettre aux utilisateurs de partager le contenu de leurs répertoires personnels. Si vous avez des questions concernant cet article, n'hésitez pas à les poser dans la section commentaires ci-dessous.