Ativando diretórios de usuários

LinuxBeginner
Pratique Agora

Introdução

Imagine que você administra um servidor universitário. Você quer que cada estudante tenha seu próprio site pessoal, acessível por uma URL como university.com/~student1.

Em vez de colocar todos os arquivos em um único diretório central, o Apache oferece um recurso chamado diretórios de usuários. Ele permite que cada usuário hospede um site diretamente em seu próprio diretório pessoal, normalmente em um subdiretório chamado public_html.

Esse recurso é menos comum em grandes plataformas modernas de produção, mas continua sendo útil para ensinar como o mapeamento de URLs, as permissões e o conteúdo web de cada usuário funcionam em conjunto.

Neste laboratório, você vai:

  1. Ativar o módulo: ativar o recurso userdir no Apache.
  2. Criar o diretório: configurar a pasta public_html no seu diretório pessoal.
  3. Configurar as permissões: garantir que o Apache tenha as permissões necessárias para acessar seus arquivos.
  4. Testar: acessar sua página pessoal por meio de uma requisição do navegador.

Ative o módulo Userdir

O Apache é um servidor modular, o que significa que você pode ativar ou desativar recursos específicos conforme necessário. O módulo userdir faz o mapeamento de URLs como ~username para o diretório pessoal do usuário.

Esse design modular é uma das características marcantes do Apache. Muitos recursos não ficam sempre ativos por padrão; em vez disso, os administradores ativam os módulos necessários para a função específica do servidor.

Verifique o status do Apache para garantir que ele esteja em execução:

sudo service apache2 status

Ative o módulo userdir usando o comando a2enmod (Apache 2 Enable Module):

O utilitário a2enmod faz parte das convenções de empacotamento do Apache no Ubuntu. Ele simplifica o gerenciamento de módulos ao criar os links simbólicos corretos, evitando que você precise editar tudo manualmente.

sudo a2enmod userdir

Você deverá ver uma mensagem informando que o módulo está sendo ativado.

Para confirmar, liste os módulos ativados:

ls /etc/apache2/mods-enabled/ | grep userdir

Você deverá ver userdir.conf e userdir.load, confirmando que o módulo está ativo.

Configure o diretório web

O módulo userdir procura uma pasta chamada public_html dentro do diretório pessoal do usuário. Neste laboratório, seu nome de usuário é labex.

Vá para o seu diretório pessoal:

cd ~

Crie o diretório public_html:

mkdir ~/public_html

Crie um arquivo index.html simples dentro desse diretório para testar seu site:

echo "<h1>My Personal Page</h1><p>Welcome to the labex user directory.</p>" > ~/public_html/index.html

Agora, precisamos tratar das permissões. Por padrão, os diretórios pessoais dos usuários geralmente são privados, impedindo que o usuário do Apache (www-data) entre neles. O Apache precisa da permissão de execução (x) no seu diretório pessoal para acessar a pasta public_html dentro dele.

Este é um bom exemplo de como a entrega de conteúdo web depende das permissões normais do sistema de arquivos do Linux. O Apache só pode servir arquivos que ele tenha permissão para percorrer e ler.

Altere as permissões do seu diretório pessoal:

chmod 711 /home/labex
  • 711 (rwx--x--x) dá a você controle total e permite que outras pessoas, como o Apache, percorram o diretório (execução), mas não listem seu conteúdo (leitura).

Essa diferença entre leitura e execução em diretórios é sutil, mas importante. A execução em um diretório significa "você pode entrar nele ou percorrê-lo", enquanto a leitura significa "você pode listar seu conteúdo".

Verifique as permissões:

ls -ld /home/labex

Você deverá ver permissões terminando em x, indicando que a navegação pelo diretório está permitida.

Reinicie o serviço

Depois de ativar um módulo ou alterar uma configuração, você precisa reiniciar o Apache para que as alterações entrem em vigor.

Reinicie o serviço do Apache:

sudo service apache2 restart

Verifique se o Apache foi reiniciado com sucesso:

sudo service apache2 status

O status deverá ser active (running).

Verifique a configuração

Agora que tudo está configurado, vamos testar sua página web pessoal.

O formato da URL é http://server_address/~username/. Como estamos no próprio servidor, usaremos localhost.

Use curl para buscar a página:

curl http://localhost/~labex/

Você deverá ver o conteúdo HTML criado:

<h1>My Personal Page</h1>
<p>Welcome to the labex user directory.</p>

Se você receber um erro 403 Forbidden, verifique novamente as permissões do seu diretório pessoal (/home/labex) e do diretório public_html.

Resumo

Neste laboratório, você configurou diretórios web pessoais com sucesso. Você aprendeu a:

  • Ativar o módulo userdir do Apache.
  • Criar e preencher o diretório public_html.
  • Configurar as permissões do diretório para permitir o acesso do Apache e manter a segurança.
  • Verificar a configuração acessando a URL específica do usuário.

Esse recurso é amplamente usado em ambientes educacionais e de hospedagem compartilhada para oferecer aos usuários seu próprio espaço web.