Compartilhando e montando automaticamente um diretório do servidor de arquivos do Windows (Active Directory) no Linux

Maneira simples de acessar compartilhamentos Windows em um servidor Linux.

Imagine a seguinte situação:

  1. Você tem uma infraestrutura com Active Directory da Microsoft ou LDAP, com pastas compartilhadas na rede, tudo funcionando de boa;
  2. Você também tem um servidor web (apache ou nginx) rodando tranquilamente, servindo sua intranet ou site na internet…;
    1. Aí alguém chega pra você e fala:
      – Sabe essa pasta compartilhada do setor XXX, então, precisamos colocar esses arquivos disponíveis TAMBÉM na Web (intranet ou internet).
      – Ah, mas esses arquivos devem continuar sendo acessível normalmente pelo compartilhamento do Windows. 

Isso é bem fácil de resolver, basta utilizar o cliente CIFS de sistemas de arquivos do Windows.

1° passo

Criar um ponto de montagem no servidor web. Usualmente utilizamos o /mnt, mas fica a critério de suas necessidades. No nosso exemplo, vamos criar esse ponto de montagem direto na pasta DocumentRoot de nosso servidor, que roda Apache e posteriormente definir o usuário apache como dono do diretório criado.

[root@server ~]# mkdir /var/www/html/arquivos

[root@server ~]# chown apache:apache /var/www/html/arquivos/ -R

2º passo

Criar um arquivo com as credenciais de acesso do Active Directory à pasta compartilhada. Vamos criar dentro do home do usuário Root:

[root@server ~]# vim /root/.shared_credencial

Insira essas informações, tão como informados:

username=nome_usuario_ad
password=senha_usuario_ad
domain=dominio.de.seu.ad

3º passo

Editar o fstab, inserindo o ponto de montagem para a pasta /var/www/html/arquivos, passando as credencias de acesso que foram registradas em /root/.shared_credencial.

[root@server ~]# vim /etc/fstab

Inserir a seguinte linha no final do arquivo, substituindo o IP do servidor de arquivos e o caminho da pasta compartilhada do exemplo dado (192.168.0.10/SETORX/arquivos) pelas informações de seu compartilhamento windows.

//192.168.0.10/SETORX/arquivos /var/www/html/arquivos/ cifs credentials=/root/.shared_credencial,iocharset=utf8,sec=ntlm,nobootwait,uid=apache,gid=apache 0 0

Observação: se você criar pastas com espaços no /var/www/html/ você precisa utilizar o símbolo %40 para informar o espaço em branco entre as palavras, na hora de referenciá-las no FSTAB, veja esse exemplo real:

# Rio Branco
# Pasta no servidor de arquivos: cidades/RBR
# Pasta no servidor web: /var/www/html/Rio Branco
//192.168.0.10/cidades/RBR      /var/www/html/Rio\040Branco    cifs credentials=/root/.shared_credencial,iocharset=utf8,sec=ntlm,nobootwait,uid=apache,gid=apache 0 0

Se a pasta tiver acento, é necessário incluir a o parâmetro lang=utf8:

# Tarauacá
# Pasta no servidor de arquivos: cidades/TRQ
# Pasta no servidor web: /var/www/html/Tarauacá
//192.168.0.10/cidades/TRQ      /var/www/html/Tarauacá    cifs credentials=/root/.shared_credencial,iocharset=utf8,sec=ntlm, lang=utf8, nobootwait,uid=apache,gid=apache 0 0

4º passo

Se você fizer uma nova entrada no fstab, ela não será montada automaticamente. Portanto, você deve recarregar/atualizar as entradas. Uma reinicialização no Linux fará isso, mas essa não é uma maneira amigável. Uma maneira rápida de recarregar novas entradas em /etc/fstab é usar o comando mount:

[root@server ~]# mount -a

Após isso, se você acessar a pasta montada, irá ter acesso aos arquivos compartilhados e como foi montado dentro do DocumentRoot do apache, os mesmos também estarão acessíveis na Web.

[root@server ~]# ls /var/www/html/arquivos/

http://192.168.0.10/arquivos/

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *