Olá pessoal!
Tive a seguinte missão: habilitar o compartilhamento de arquivos via
Samba para certos usuários da minha rede com estações Windows, sendo que esses diretórios e arquivos deveriam ser acessados via web pela equipe "móvel".
Utilizei a seguinte solução e achei interessante compartilhá-la:
Levando-se em consideração que Samba e Apache2 já estão instalados.
Criando os usuários no
Linux:
# adduser <usuário>
Entre com a senha (se possível a mesma da rede Windows, ou se tiver muitos usuários, pesquise sobre algum tipo de migração).
Adicione o usuário no Samba:
# smbpasswd -a <usuário>
* Entre com mesma senha do Linux e confirme.
E caso precise, para excluir:
# smbpasswd -x <usuário>
Adicione um grupo:
# addgroup <grupo> (no meu caso usei o grupo "movel")
Adicione os usuários no grupo:
# gpasswd -M <usuário1>,<usuário2>,... <grupo>
Se for o caso, adicione os grupos ao usuário:
# usermod -G <grupo1>,<grupo2>,... <usuário>
Crie o diretório no ROOT do Apache (por padrão: /var/www/, verifique sua configuração).
# mkdir /var/www/<diretório>
Altere as permissões para que somente usuário e grupo tenham acesso ao diretório:
# chmod 770 /var/www/<diretório>
Se necessário altere as permissões de acordo com suas necessidades.
Altere o grupo de acesso:
# chown <usuário>.<grupo> /var/www/<diretório>
Temos aqui um pequeno "problema", alterando o grupo do diretório, o Apache não consegue acessar a pasta, portanto temos também que adicionar o usuário do Apache (www-data) ao grupo em questão (movel).
# gpasswd -M <usuário> <grupo>
# gpasswd -M www-data movel
Vamos habilitar a restrição do endereço no Apache2 editando o arquivo
/etc/apache2/sites-available/default e adicionando o seguinte conteúdo no final do arquivo:
<Directory /var/www/diretório>
Deny from all
AuthType Basic
AuthName "Acesso Restrito!"
AuthUserFile /var/www/autentica/.htpasswd_movel
Require valid-user
Satisfy Any
</Directory>
Agora vamos criar o arquivo de autenticação citado acima:
# htpasswd -c /var/www/autentica/.htpasswd_movel <usuário>
* Entre com mesma senha do Linux e confirme.
* É necessário UM arquivo para cada usuário, portanto se for utilizar mais de um usuário, aconselho alterar o arquivo .htpasswd_movel para .htpasswd_<usuário>, onde <usuário> deve ser o usuário que for cadastrado.
Criando o compartilhamento no Samba
Edite o arquivo
/etc/samba/smb.conf e adicione:
[Movel]
browseable = yes
path = /var/www/movel
read only = no
comment = Arquivos Equipe Movel
public = no
* Existem muitas outras opções que podem ser usadas aqui, se houver necessidade, por favor consultem a documentação do Samba.
Reinicie o Apache2:
# /etc/init.d/apache2 restart
Reinicie o Samba:
# /etc/init.d/samba restart
* No caso da distribuição Debian e derivadas.
Para acessar via Samba, vá em iniciar, executar e digite:
\\IP_SERVIDOR
Entre com usuário e senha.
Se o usuário já estiver logado na estação com os mesmos dados cadastrados no Samba, não será necessário autenticar novamente. Se necessário, pode mapear a unidade.
Para acessar via web:
http://IP_SEVIDOR/<diretório>
Entre com usuário e senha.
Se não tiver um domínio, é interessante cadastrar um hostname do tipo
DynDNS.
Espero que seja útil!
Abraço.