Compartilhar uma pasta do Linux usando Samba é uma tarefa de extrema utilidade e relativamente simples, porém com o SELinux habilitado, precisamos dizer para ele que o Samba pode compartilhar aquele recurso na rede.
Este post dedica-se a mostrar como instalar, configurar o Samba e compartilhar uma pasta em uma instalação CentOS com Firewall (iptables) e SELinux habilitados.
- Instale o pacote Samba com o comando abaixo:
yum install samba
system-config-securitylevel-tui
Uma tela como esta a seguir, deve ser exibida, nela use o TAB para selecionar Personalizar e pressione [Enter]:
Ao selecionar Personalizar você deve estar em uma tela como esta abaixo, nela use o TAB para chegar até a opção Samba no campo Permitir entrada, depois use a Barra de Espaço para marcar Samba:
Para sair e salvar, use TAB e selecione OK, que você retornará para a tela anterior e nela selecione OK novamente para confirmar a configuração e sair.
chkconfig --level 2345 smb on
vi /etc/samba/smb.conf
Os valores dos parâmetros citados devem ficar parecidos com estes abaixo, claro com exceção para o workgroup, onde você deve inserir o nome do seu grupo de trabalho e o server string a descrição do servidor:
workgroup = COMPOSTA server string = Servidor Loja 90 security = user
Para sair do vi e salvar, use :wq.
mkdir /path_comum
adduser -M zanthus
Defina uma senha para o sistema:
passwd zanthus
Defina uma senha para o Samba, sugiro usar a mesma do sistema:
smbpasswd -a zanthus
chmod -Rf 765 /path_comum
chown -R zanthus.zanthus /path_comum
Grava a configuração do contexto:
semanage fcontext -a -t samba_share_t "/path_comum(/.*)?"
Faz valer as regras imediatamente:
chcon -t samba_share_t /path_comum/
Para editar utilize:
vi /etc/samba/smb.conf
Insira as linhas no final do arquivo:
[path_comum] comment = Area comum dos PDVs Zanthus path = /path_comum writeable = yes valid users = zanthus public = no printable = no create mask = 0765
service smb start
Feito, se tudo correu bem você deve estar com um servidor Samba funcionando de modo seguro com um compartilhamento liberado para um determinado usuário.
Vídeo True Post.
Assista ao vídeo que testa este tutorial.
boa noite o seguinte comando system-config-securitylevel-tui nao funcionou no centos 6.2, sera que ele mudou de nome?
desde ja agradeço pela atenção.
CurtirCurtir
William, no momento não tenho um Centos 6 para testar, mas se não estou enganado no Centos 6, use:
system-config-firewall-tui
CurtirCurtir
Bom eu fiz tudo certo aqui no meu pc a unica coisa que fiz diferente foi o nome da pasta que não uei o mesmo nome. . mas quando vou da dar o comando “service smb start” ae o meu vem uma mensagem em baixo escrito “Iniciando o serviços SMB:” e só não faz mais nada eu vi no video que depois que vc deu o comando ele carro 2 mensagens no meu aqui não..vc sabe o que poderia ser isso?
CurtirCurtir
A principio não há problema, o serviço que você viu iniciar junto com o SMB no vídeo é o NMB, ele resolve os nomes das máquinas, o netbios name.
CurtirCurtir
Bom eu consegui configurar tudo certo, mas para eu poder entra no servidor eu estou tendo que colocar o ip que carrego o centos, por exemplo, “\192.168.1.5xxx”. eu gostaria de saber se tem algo que posso editar aqui que eu mudu em vez de colocar o ip entrar com um nome por exemplo “\servidorxxx”. Muito obrigado pela atenção
CurtirCurtir
Com certeza já encontrou a solução. Mas para outros que venham a fazer consultas futuras, tem duas maneiras: DNS local e arquivo hosts.
Não lhe conheço Gabriel, mas aprecio muito e agradeço suas contribuições com o conhecimento em linux.
CurtirCurtir
Obrigado por compartilhar.
OFF Topic: Desculpe na demora pelo retorno, meus comentários estavam indo para o spam automaticamente!
CurtirCurtir
Fala Gabriel parabéns pelo post, fazia tempo que não criava um serve linux aqui e tava apanhando para fazer o path_comum funcionar olhei no google e por acaso achei seu post aqui e ajudou bastante
um abraços Guirado
CurtirCurtir
Coisa linda, Guirado!
Bom vê-lo por aqui!
Valeu bicho!
CurtirCurtir
Olá Gabriel. Mto bom o seu post. Me deixa mais claro. Estou instalando em minha farmácia um dell t110 com o centos 6.3. Minha rede tem dois terminais windows onde terei que acessar a pasta do sistema,que é java. e gostaria de liberar também para os Pc’s a pasta /home. Para que tenham direito de gravar arquivos nas mesmas. Deveria editar dois arquivos um com [path_home] e a outra [path_meu-sistema].. Claro que com as respectivas linhas abaixo..
CurtirCurtir
Ola André, vou tentar ajudar…
Para compartilhar as pastas de usuários /home/nome_usuario basta você deixar a sessão [homes] do /etc/samba/smb.conf como abaixo, mas não se esquece de aplicar a regra do SELinux em todas as pastas dos usuários, conforme este meu post acima.
Usando o homes, todo novo usuário automaticamente terá sua pasta compartilhada.
Trecho do /etc/samba/smb.conf
Para o compartilhamento do seu programa, siga o exemplo para o “path_comum” como está no artigo que você deve ser feliz! 🙂
Valeu!
CurtirCurtir
Compreendi a configuração sim Gabriel.
Então fazendo da maneira proposta, todos os pc´s que se conectarem na rede terao acesso a pasta (/home/nome_usu) & (/home/sistema)? Ou a cada nova maquina conectada ao sistema teria que criar um novo usuário no samba? Essa seria uma das coisas que ainda não ficarao claras. Tipo, se um dia trazer um notebbok para trabalhar, tenho que acessar o servidor para criar um novo usuário samba para o notebook que o notebook tenha acesso? Obrigado pela atenção!! 🙂
CurtirCurtir
Ola André, seu pensamento está correto quanto ao usuário, ou seja, para acessar é necessário ter um usuário e senha no servidor. Um mesmo usuário pode se conectar de mais de um computador/notebook simultaneamente, assim sua conta é por usuário e não por computador/notebook.
Para visitantes, você pode ter um usuário “comum” para todos, só para não ter que criar um novo sempre que um novo visitante aparecer.
Espero ter ajudado e um feliz 2015 pra ti!
CurtirCurtir
Olá Gabriel, ótimo seu post me ajudou muito. Fiz tudo certinho, porém a pasta fica inacessível, ou seja, a pasta lista mas não é possível acessá-la.
CurtirCurtir
Ola Jader, pelo que tu descreve, parece que temos algum problema com o SElinux você pode desabilitar ele totalmente para efeito de teste. veja como:
editar o arquivo /etc/selinux/config e colocar o parâmetro “SELINUX=” para “SELINUX=disabled”.
reinicie e volte a testar … se funcionar algo deu errado nos comandos :
semanage fcontext -a -t samba_share_t “/path_comum(/.*)?”
OU
chcon -t samba_share_t /path_comum/
** observe que estes são exemplos, você deve alterar o caminho (pasta) para a sua.
Valeu.
CurtirCurtir