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.