Vyhledávání na webu

Jak povolit modul Apache Userdir na RHEL/CentOS


Adresář uživatelů nebo Userdir je modul Apache, který umožňuje načítání adresářů specifických pro uživatele prostřednictvím webového serveru Apache pomocí http://example.com/ ~user/ syntaxe.

Pokud je například povolen modul mod_userdir, uživatelské účty v systému budou mít přístup k obsahu ve svých domovských adresářích se světem prostřednictvím webového serveru Apache.

V tomto článku vám ukážeme, jak povolit Apache userdirs (mod_userdir) na RHEL, CentOS a Servery Fedory využívající webový server Apache.

Tento výukový program předpokládá, že již máte ve své distribuci Linuxu nainstalovaný webový server Apache. Pokud ne, můžete jej nainstalovat pomocí následujícího postupu...

Krok 1: Nainstalujte Apache HTTP Server

Chcete-li nainstalovat webový server Apache, použijte ve své distribuci Linuxu následující příkaz.

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

Krok 2: Povolte Apache Userdirs

Nyní musíte nakonfigurovat webový server Apache tak, aby používal tento modul v konfiguračním souboru /etc/httpd/conf.d/userdir.conf, který je již nakonfigurován s nejlepšími možnostmi.

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

Poté ověřte obsah něco jako níže.

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>

Chcete-li povolit přístup k adresářům UserDir několika uživatelům, ale ne nikomu jinému, použijte v konfiguračním souboru následující nastavení.

UserDir disabled
UserDir enabled testuser1 testuser2 testuser3

Chcete-li všem uživatelům povolit přístup k adresářům UserDir, ale některým uživatelům to zakázat, použijte v konfiguračním souboru následující nastavení.

UserDir enabled
UserDir disabled testuser4 testuser5 testuser6

Jakmile provedete nastavení konfigurace podle vašich požadavků, musíte restartovat webový server Apache, abyste mohli použít poslední změny.

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

Krok 3: Vytvoření adresářů uživatelů

Nyní musíte vytvořit public_html adresář/adresáře v domovských adresářích uživatelů/uživatelů. Například zde vytvářím adresář public_html v domovském adresáři uživatele tecmint.

mkdir /home/tecmint/public_html

Dále použijte správná oprávnění pro uživatelské adresáře home a public_html.

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

Také nastavte správný kontext SELinux pro Apache homedirs (httpd_enable_homedirs).

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

Krok 4: Test povolený Apache Userdir

Nakonec ověřte Userdir tak, že v prohlížeči nasměrujete název hostitele nebo IP adresu serveru a za ním uživatelské jméno.

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

Pokud chcete, můžete také otestovat stránky HTML a informace o PHP vytvořením následujících souborů.

Vytvořte soubor /home/tecmint/public_html/test.html s následujícím obsahem.

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

Vytvořte soubor /home/tecmint/public_html/test.php s následujícím obsahem.

<?php
  phpinfo();
?>

To je vše! V tomto článku jsme vysvětlili, jak povolit modul Userdir, aby uživatelé mohli sdílet obsah ze svých domovských adresářů. Pokud máte dotazy týkající se tohoto článku, neváhejte se zeptat v sekci komentářů níže.