Pesquisa de site

Como ativar o módulo Apache Userdir no RHEL/CentOS


User Directory ou Userdir é um módulo Apache, que permite que diretórios específicos do usuário sejam recuperados através de um servidor web Apache usando o http://example.com/ Sintaxe ~user/.

Por exemplo, quando o módulo mod_userdir estiver habilitado, as contas dos usuários no sistema poderão acessar o conteúdo em seus diretórios pessoais com o mundo através do servidor web Apache.

Neste artigo, mostraremos como habilitar userdirs (mod_userdir) do Apache em RHEL, CentOS e Servidores Fedora usando servidor web Apache.

Este tutorial pressupõe que você já tenha o servidor web Apache instalado em sua distribuição Linux. Caso contrário, você pode instalá-lo usando o seguinte procedimento…

Etapa 1: Instale o servidor HTTP Apache

Para instalar o servidor web Apache, use o seguinte comando em sua distribuição Linux.

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

Etapa 2: Habilitar Userdirs do Apache

Agora você precisa configurar seu servidor web Apache para utilizar este módulo no arquivo de configuração /etc/httpd/conf.d/userdir.conf, que já vem configurado com as melhores opções.

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

Em seguida, valide o conteúdo conforme abaixo.

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 alguns usuários tenham diretórios UserDir acessados, mas mais ninguém, use a seguinte configuração no arquivo de configuração.

UserDir disabled
UserDir enabled testuser1 testuser2 testuser3

Para permitir que todos os usuários tenham diretórios UserDir acessados, mas desabilitar isso para alguns usuários, use a seguinte configuração no arquivo de configuração.

UserDir enabled
UserDir disabled testuser4 testuser5 testuser6

Depois de definir as configurações de acordo com seus requisitos, você precisa reiniciar o servidor web Apache para aplicar as alterações recentes.

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

Etapa 3: Criando diretórios de usuários

Agora você precisa criar um diretório/diretórios public_html nos diretórios iniciais dos usuários/usuários. Por exemplo, aqui estou criando um diretório public_html no diretório inicial do usuário tecmint.

mkdir /home/tecmint/public_html

Em seguida, aplique as permissões corretas nos diretórios home e public_html do usuário.

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

Além disso, defina o contexto SELinux correto para homedirs do Apache (httpd_enable_homedirs).

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

Etapa 4: testar o Apache Userdir habilitado

Por fim, verifique o Userdir apontando seu navegador para o nome do host ou endereço IP do servidor seguido do nome de usuário.

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

Se desejar, você também pode testar páginas HTML e informações de PHP criando os seguintes arquivos.

Crie o arquivo /home/tecmint/public_html/test.html com o seguinte conteúdo.

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

Crie o arquivo /home/tecmint/public_html/test.php com o seguinte conteúdo.

<?php
  phpinfo();
?>

Isso é tudo! Neste artigo, explicamos como ativar o módulo Userdir para permitir que os usuários compartilhem conteúdo de seus diretórios pessoais. Se você tiver dúvidas sobre este artigo, sinta-se à vontade para perguntar na seção de comentários abaixo.