Olá amigos!. Se quisermos ter um Servidor Independente (Standalone) para compartilhar recursos seja de nossa estação de trabalho; ou para um pequeno grupo de máquinas; ou para uma LAN sem um controlador de domínio no estilo Microsoft, é mais fácil fazer isso usando o Samba.
Existem algumas ferramentas gráficas para este fim, bem como a ferramenta para administrar o Samba via web "SWAT". Porém, recomendamos para iniciantes que começam manualmente neste mundo maravilhoso. Não é tão difícil ou diabólico como muitos pensam. E no processo você aprende muito sobre redes SMB / CIFS e sobre permissões e direitos em sistemas de arquivos Linux.
Antes de continuar, recomendamos a leitura:
- Samba: introdução necessária
- Samba: navegue em uma rede SMB / CIFS sem Samba
- Samba:SmbClient
- Samba: CIFS-Utilitários
Não vamos ver como compartilhar impressoras usando Samba. Para aqueles que desejam usar este pacote para esses fins, recomendamos a leitura da documentação que o acompanha, conforme indicado em Samba: introdução necessária. Você também pode ler o artigo CUPS: como usar e configurar impressoras de maneira fácil.
Pontos fundamentais a considerar
- Apesar de toda a aura que cerca Active Directories e seus Domain Controllers, que em várias ocasiões não são necessários ou mal explorados, instalar e configurar um Servidor Samba Independente É uma opção válida e confiável.
- Um Servidor Independente pode ser tão seguro ou inseguro de acordo com nossas necessidades, e podemos configurá-lo de forma simples ou complexa.
- A autenticação do usuário é feita no próprio servidor onde residem os recursos.
- Para que um usuário possa acessar recursos de um computador remoto, ele também deve estar registrado na base de usuários do Samba.
- Só podemos adicionar ao banco de dados de usuários do Samba aqueles usuários que já existem em nosso servidor ou máquina desktop.
- Um servidor Samba independente NÃO fornece login de rede, como um controlador de domínio faz. Também não fornece login para um domínio.
- Quanto menos alterarmos e / ou adicionarmos parâmetros ao arquivo /etc/smb.conf Sem antes saber em detalhes o que queremos alcançar, será Muito Melhor.
- O serviço de compartilhamento de recursos no Samba funciona no sistema de arquivos Linux, incluindo sua segurança inerente. Muitos problemas são resolvidos prestando-se a devida atenção às permissões de arquivo e diretório.
- É essencial entender como lidar com o comportamento do sistema de arquivos a partir do arquivo smb.conf, bem como compreender como funciona a segurança do sistema de arquivos UNIX / Linux.
- Recomendamos não usar acentos, eñes ou espaços nos nomes de pastas e recursos compartilhados. De preferência, use letras minúsculas para nomes.
- Os nomes de compartilhamento não podem ser repetidos em uma LAN. Cada nome é único.
- Se NÃO houver servidor WINS em nossa LAN, podemos fazer com que nosso Samba aja como tal adicionando o «global»Do arquivo smb.conf o parâmetro ganha suporte = Sim., o que é altamente recomendado.
Servidor de amostra
Nome: ofegante. Domínio: friends.cu. IP: 10.10.10.20. Usuários: xeon, zeus e triton. Grupos adicionais: contadores
instalação
Por meio do Synaptic ou do console, instalamos o pacote samba.
sudo aptitude instalar samba
É muito útil instalar também o pacote smbclient. Vamos usá-lo para verificações.
No processo, os pacotes serão instalados - mas já instalamos alguns outros relacionados ao Suite- samba samba-comum, samba-common-bin y ferramentas tdb. Além disso, o arquivo é criado /etc/samba/smb.conf. Este arquivo será criado enquanto os pacotes estiverem instalados samba-comum y samba-common-bin, e não será excluído do sistema até que sejam desinstalados.
O arquivo smb.conf é o mais importante no Samba Suite
O Samba tem um grande número de opções de configuração, a maioria das quais não são mostradas no exemplo de smb.conf que é instalado por padrão. As opções comentadas com «;»São considerados importantes o suficiente para serem exibidos e seus valores padrão diferem dos padrões de comportamento do Samba. As opções de configuração comentadas com «#«, Têm padrões do Samba, e também são considerados importantes para exibir.
Se quisermos ver o conteúdo do arquivo sem considerar as opções comentadas com «;" ou com "#«, Devemos executar:
egrep -v '# |; | ^ * $' /etc/samba/smb.conf
Se quisermos ver o conteúdo do arquivo sem considerar as opções comentadas com «#«, Devemos executar:
egrep -v '# | ^ * $' /etc/samba/smb.conf
A primeira coisa que devemos fazer é uma cópia do arquivo /etc/samba/smb.conf. No próprio arquivo encontramos a maneira pela qual o Samba recomenda fazer uma cópia de trabalho, que detalhamos abaixo. Como raiz nós executamos:
cd /etc/samba mv smb.conf smb.conf.master testparm -s smb.conf.master> smb.conf root @ miwheezy: / etc / samba # ls -l total 32 -rw-r - r-- 1 root 8 Nov 10 2002 gdbcommands -rw-r - r-- 1 root 805 Ago 4 12:05 smb.conf -rw-r - r-- 1 root root 12173 4 de agosto 12:05 smb.conf.master
Observe a diferença de tamanho entre o smb.conf gerado desta forma e o original. Como o tamanho é menor, o desempenho do servidor aumenta de acordo com o indicado pela Equipe Samba.
O conteúdo inicial do arquivo /etc/samba/smb.conf Será (lembre-se de que não desenvolveremos o compartilhamento de impressoras):
[global] grupo de trabalho = FRIENDS nome do netbios = MIWHEEZY segurança = usuário server string =% h server map to guest = Mau usuário obedece às restrições do pam = Sim mudança de senha do pam = Sim passwd program = / usr / bin / passwd% u passwd chat = * Digite \ snew \ s * \ spassword: *% n \ n * Digite novamente \ snew \ s * \ spassword $ unix password sync = Sim syslog = 0 arquivo de log = /var/log/samba/log.%m tamanho máximo do log = 1000 dns proxy = Não usershare permitir convidados = Sim ação de pânico = / usr / share / samba / panic-action% d idmap config *: backend = tdb [homes] comment = Diretórios iniciais usuários válidos =% S criar máscara = 0700 máscara de diretório = 0700 navegável = Não
Os valores destacados em negrito são os únicos que devemos modificar inicialmente. Observe que, apesar de ser o comportamento padrão do Samba, declaramos explicitamente a opção segurança = usuário dada a sua grande importância.
Se NÃO houver servidor WINS em nossa LAN, podemos fazer com que nosso Samba aja como tal adicionando o «global»Do arquivo smb.conf o parâmetro ganha suporte = Sim., o que é altamente recomendado.
regra de ouro: Quanto menos alterarmos e / ou adicionarmos parâmetros ao arquivo smb.conf sem primeiro saber em detalhes o que queremos alcançar, muito melhor será.
Aqui está um breve resumo de algumas das opções mostradas. Para obter mais informações, execute homem smb.conf.
- grupo de trabalho: Controla em qual Grupo de Trabalho o equipamento aparecerá ao fazer um navegador web. Este parâmetro também controla o nome do domínio ao trabalhar com a opção segurança = domínio e em que a equipe se junta a um Domínio. Veremos em artigos posteriores. o valor padrão é GRUPO DE TRABALHO.
- nome netbios: Define o nome NetBIOS pelo qual o servidor Samba será conhecido na rede. Por padrão, é o mesmo que o primeiro componente do FQDN do host. Em nosso exemplo, o FQDN da equipe é miwheezy.amigos.cu. Podemos usar um nome diferente do host do nosso servidor Samba. Nesse caso, é aconselhável incluir um registro CNAME em nosso DNS.
- segurança: Parâmetro que afeta como os clientes respondem ao Samba e é um dos mais importantes no arquivo smb.conf. o valor padrão é usuário.
- string de servidor: Controla qual nome é mostrado nos comentários que aparecem em um navegador da web ao lado do nome da equipe.
- mapa para convidado: Parâmetro que só é útil quando definido segurança = usuário o segurança = domínio. O valor "Bad User" diz ao Samba para rejeitar uma senha inválida, a menos que o usuário NÃO exista, caso em que ele será tratado como Guest ou "convidado«. Se não quisermos permitir sessões de visitantes, devemos alterar seu valor para Nunca, que é precisamente o valor padrão, e também altera o parâmetro userhare permitir convidado a não, que também é o valor padrão.
- obedecer às restrições do pam: Controla se o Samba deve obedecer ou não às próprias restrições do PAM «Módulo de autenticação plugável«, Quanto às Diretrizes de Administração de Contas e Sessões de Usuários. o valor padrão é não.
- mudança de senha pam: Diz ao Samba para usar o PAM para alterações de senha solicitadas por um cliente SMB. o valor padrão é não.
- programa passwd: Programa usado para definir senhas UNIX para usuários.
- bate-papo passwd: Cadeia que controla a conversa que ocorre entre o demônio pequeno e o programa local para a alteração da senha definida no parâmetro anterior.
- sincronização de senha unix: Diz ao Samba para sincronizar a senha SMB com a senha UNIX, desde que a anterior seja alterada. o valor padrão é não.
- usuários válidos: Lista de usuários que têm permissão para fazer login em um compartilhamento.
Reinicie ou recarregue o serviço Samba
Sempre que fazemos mudanças significativas, especialmente na seção «[global]" do smb.conf, devemos reiniciar o serviço. Se já temos usuários conectados ao nosso servidor, toda vez que reiniciarmos o Samba, iremos desconectá-los. Por isso, e praticamente a partir de agora, só recarregaremos o serviço quando adicionarmos ou modificarmos recursos compartilhados. Para reiniciar o serviço, executamos como raiz:
reiniciar serviço samba
Para recarregar o serviço:
recarregar serviço samba
Nós adicionamos os usuários ao sistema e ao banco de dados de usuários do Samba
Só podemos adicionar ao banco de dados de usuários do Samba aqueles usuários que já existem em nosso servidor local.
Em nosso exemplo, o usuário xeon ele foi adicionado durante a instalação do Wheezy. Portanto, não o adicionaremos aos usuários da equipe. O grupo de usuários existe no sistema e foi criado durante a instalação.
Algumas opções de comando smbpasswd são:
- -a: Adiciona o usuário especificado ao arquivo local smbpasswd.
- -x: O usuário indicado deve ser removido do arquivo local smbpasswd. Só disponível quando smbpasswd corre como raiz.
- -d: A conta de usuário indicada deve ser desabilitada. Só disponível quando smbpasswd corre como raiz.
- -e: Oposto da opção -d contanto que a conta do usuário esteja desativada.
Para criar os usuários em nossa equipe, fazemos isso com o conhecido comando adicionar usuário.
adduser zeus adduser triton
Para criar o grupo contadores:
contadores addgroup
Para adicionar usuários ao banco de dados Samba:
smbpasswd -a raiz smbpasswd -a xeon smbpasswd -a zeus smbpasswd -a triton
Nós nos juntamos ao grupo contadores para os usuários que queremos:
adduser xeon contadores adduser zeus contadores adduser triton contadores
Recomenda-se juntar cada usuário criado ao grupo usuários, caso desejemos conceder permissões a todos os usuários que criamos, em um recurso específico. Uma maneira mais fácil de juntar vários usuários a um grupo é editando diretamente o arquivo / etc / groupe adicionando a lista de usuários separados por uma vírgula. Eles podem ser guiados pelo grupo contadores. Presumimos que juntamos usuários ao grupo usuários.
Em uma estação de trabalho, para remover a exibição de usuários criados usando adicionar usuário, devemos editar o arquivo /etc/gdm3/greeter.gsettings e descomente a opção disable-user-list = true, de modo que NENHUMA lista de usuários seja exibida ao fazer login. Este é o comportamento padrão de qualquer computador cliente Windows associado a um Domínio.
Da mesma forma, se quisermos que os usuários criados não iniciem uma sessão remota através ssh, nós editamos o arquivo / etc / ssh / sshd_config e adicione ao final do arquivo a instrução Permitir usuários. Exemplo:
[....] # e ChallengeResponseAuthentication como 'não'. UsePAM sim AllowUsers xeon
Nós adicionamos recursos compartilhados
1 exemplo: Queremos compartilhar a pasta / home / xeon / music para todos os usuários registrados. A permissão será somente leitura. Em primeiro lugar, criamos a pasta / home / xeon / music e configuramos seu proprietário e permissões, se necessário. Como o usuário Xeon nós executamos:
mkdir / home / xeon / música ls -l / home / xeon | música grep
Então, no final do arquivo smb.conf adicionamos o seguinte:
[music-xeon] comment = Caminho da pasta de músicas pessoais = / home / xeon / música somente leitura = Sim usuários válidos = @users ler lista = @usuários
Após as modificações no arquivo, executamos parâmetro de teste como o usuário xeon e recarregamos o serviço como raiz. Também podemos executar os dois comandos como raiz:
recarregar samba de serviço testparm
Para verificar o serviço recém-configurado, podemos fazê-lo executando o seguinte comando no próprio computador:
smbclient -L localhost -U%
2 exemplo: Queremos compartilhar a pasta / home / xeon / music para todos os usuários registrados. As permissões serão de leitura / gravação para xeon e somente leitura para o restante dos usuários pertencentes ao grupo usuários. Não precisamos modificar o proprietário ou as permissões da pasta. Nós apenas mudamos um pouco as configurações de compartilhamento no arquivo smb.conf.
[music-xeon] comment = Caminho da pasta de músicas pessoais = / home / xeon / música somente leitura = Nenhum usuário válido = @usuários lista de gravação = lista de leitura xeon = @usuários
3 exemplo: Queremos compartilhar a pasta / home / xeon / contabilidade para grupo de usuários contadores. Todos os membros do grupo terão permissão de leitura. Os usuários tritão y Zeus eles poderão gravar na pasta compartilhada.
Agora, se tivermos que modificar o proprietário e as permissões da pasta contabilidade depois de criado, para que possam escrever tritão y Zeus quem é membro do grupo contadores. Devemos também cuidar para que o último usuário que cria ou modifica um arquivo não se torne seu dono absoluto, para que possa ser modificado por outros usuários com permissão de escrita.
É essencial entender como lidar com o comportamento do sistema de arquivos do smb.conf, bem como compreender como funciona a segurança do sistema de arquivos UNIX / Linux.
Nestes casos, devemos:
- Declare na conveniência quem será o Usuário Proprietário e quem será o Grupo Proprietário do Diretório Compartilhado.
- Permitir gravação no diretório compartilhado pelo grupo proprietário.
- Declare o bit SGID (Definir ID do Grupo) do diretório durante sua criação.
- Declarar corretamente no arquivo smb.conf as maneiras de criar arquivos e diretórios dentro de nosso recurso compartilhado.
Uma solução simples e possível na prática teremos se nós executamos como raiz:
mkdir / home / xeon / accounting chown -R root: counters / home / xeon / accounting chmod -R g + ws / home / xeon / accounting ls -l / home / xeon
E adicionamos o seguinte ao final do arquivo smb.conf:
[contabilidade] comentário = Pasta para o caminho dos contadores = / home / xeon / contabilidade somente leitura = Nenhum usuário válido = @ contadores lista de gravação = triton, zeus lista de leitura = @ contadores forçar modo de criação = 0660 forçar modo de diretório = 0770
Nós imediatamente verificamos a sintaxe básica do smb.conf através parâmetro de teste e recarregamos o serviço através recarregar serviço samba. Nós também podemos correr smbclient -L localhost -U%. no servidor local, e smbclient -L mywheezy -U% o smbclient -L mywheezy.friends.cu -U% do computador remoto.
O tempo é que de um computador remoto nos conectamos ao recurso compartilhado e fazemos todos os testes necessários. Recomenda-se verificar como o usuário que possui as pastas e arquivos muda à medida que são criados no recurso.
Importante: O usuário raiz ou o usuário xeon e em geral qualquer membro do grupo contadores, você pode escrever de uma sessão local iniciada no mesmo computador ou por ssh, ou seja, sem usar o protocolo SMB / CIFS. Se você criar uma pasta ou arquivo localmente, lembre-se de reatribuir as permissões apropriadas. Conferido por ls -l. Não fazer o que foi descrito acima é fonte de muita confusão.
Amigos, perdoem-me a extensão do artigo e espero que seja de alguma utilidade para vocês. Até a próxima aventura!
Excelente como sempre. Esses tipos de artigos são apreciados quando trabalhamos com servidores. 😉
Muito bom freeke, mas para mim é melhor usar FreeNAS para esse tipo de coisa
😉
Obrigado por seus comentários!!!. Freeke, o FreeNAS do FreeBSD é outra história selvagem e posso dedicar um artigo a ela. No final das contas é Samba sobre FreeBSD.
Muito bom post devo dizer, como sempre disse se você tivesse postado alguns anos atrás, teria me poupado de muitos problemas, mas é bom que alguém se interesse em mostrar como configurar o samba, Saudações
Como diz o ditado "nunca é tarde se a felicidade for boa" e outro "é melhor tarde do que nunca". Obrigado por comentar. Comecei a usar o Samba, acho que por volta de 2007. Até agora, não tinha conseguido postar nada sobre ele.
Da mesma forma, já uso o samba quase na mesma época, mas vejo que você aperfeiçoou muito e está certo que "nunca é tarde se a felicidade é boa", me pareceu, devo dizer que é muito bom alguém compartilhar seus conhecimentos, muitos Às vezes a gente não ousa ou não tem tempo, no meu caso é o primeiro, Saudações
Amigo @fico, gosto muito dos seus artigos. Eles são extremamente bem explicados e detalhados. Obrigado.
Espero que sejam úteis para você. Esse é o propósito !!!.
Sim. É 🙂
A propósito, acabei de ver seu artigo postado em outra página (http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html) e a referência à fonte é muito pequena. Isso não se faz. Mérito de quem merece, droga! Não sei se daqui eles podem pedir a essas pessoas que façam uma grande diferença em quem faz as coisas. Para o olho destreinado, passaria como se eles o tivessem criado e postado.
Sr. autor do post, e se você criar um artigo sobre como compartilhar arquivos via samba para usuários comuns? Quero dizer algo menos extenso e mais gráfico, como como compartilhar de linux para linux e de linux para windows mas não de um maneira tão profissional, mas gosto de compartilhar arquivos entre PCs em casa.
Para esse caso, recomendo usar ssh para Linux - Linux e winscp para Windows - Linux. Existem vários artigos neste mesmo site.
Este mesmo post, embora possa parecer complicado, se você copiar e colar os poucos comandos que inclui, também funciona para uma rede doméstica.
Embora seja mais prático usar o sistema SMB / CIFS para usar o mesmo protocolo de compartilhamento de arquivos para Windows (ou pastas compartilhadas para abreviar).
Farei meus experimentos para poder fazer um tutorial de como fazer uma pasta compartilhada no GNU / Linux (no meu caso, Debian Wheezy) para que as redes com Windows a reconheçam como uma pasta compartilhada.
muito bom e o comprimento vale a pena, mas talvez você deva mencionar o parâmetro oslevel antes de interagir com o windows.
lembranças
Observe que é uma rede sem um controlador de domínio do Windows. Usaremos esse parâmetro quando tratarmos de uma máquina associada a um Domínio.
quando eu tiver algum tempo eu vou
[offtopic] Eu gostaria de postar tutoriais do GIMP. Se pode?
[/ offtopic]
Amigo @giskard, acabei de visitar http://www.infognu.com.ar/2013/08/samba-servidor-independiente-en-debian.html, e não vi nenhuma referência a este post. Eles fizeram um copiar / colar na bochecha, Hahahahahaha. Isso mostra que, pelo menos, o post é de boa qualidade. Eu digo, não? Hahahahahaha.
Perto do final, em letras minúsculas, está o link que diz "fonte" e aponta para este site. Mas fazer isso me parece uma total descortesia e falta de respeito. Felizmente, aqui sabemos quem é o autor 🙂
Eles colocam a referência, mas dificilmente pode ser notado que eles tinham que ter mencionado no início do artigo
No arch wiki diz que a partir da versão 3.4 é recomendado usar pdbedit em vez de smbpasswd.
Uma pergunta, de acordo com um amigo antes de adicionar um usuário ao Samba um usuário deve ser criado no sistema, mas com / bin / false
useradd -s / bin / false myuser
0.o é verdade?
Amigo @ truko22, e em geral para quem faz perguntas semelhantes. Lembre-se de que sempre afirmamos que só damos um Ponto de entrada para o assunto. Também recomendamos a leitura da documentação anexa. Afinal, a personalização do serviço é da responsabilidade de quem o implementa, de forma a responder às suas necessidades e com o nível de segurança que as satisfaz.
Por exemplo, o problema de permissões pode ser evitado se permitirmos que qualquer pessoa escreva para o compartilhamento usando chmod 777. Claro que essa não é uma solução segura.
Você pode evitar que o usuário inicie uma sessão local ou via ssh se nós o criarmos através adduser user –shell / bin / false. Em outras palavras, o usuário criado não pode acessar um terminal ou console.
Em outras palavras, o Samba pode ser configurado de várias maneiras, das mais simples às mais complexas.
O que acontece?. Se escrevermos a postagem sem permitir que usuários adicionados ao Samba façam login localmente, eles certamente perguntarão por quê. É por isso que preferimos escrevê-lo da maneira mais clássica possível e deixar que cada um tire suas próprias conclusões.
@ truko22, Obrigado por me dar o ponto certo para fazer o comentário anterior !!!
Muito obrigado, agora eu entendo 😀 sobre o –shell / bin / false
Amigo @ truko22, esqueci o pdbedit. Desde o Etch que me acostumei a usar smbpasswd. Este comando pode ser executado por qualquer usuário do sistema e seu comportamento e resultados variam. pdbedit, também pode ser usado, mas só pode ser chamado pelo usuário root.
Sobre o Samba, você pode escrever artigos inteiros sobre muitos de seus comandos.
Esta muito bom!!
lembranças
Artigo muito bom. Parabéns e obrigado por essa contribuição
Queria perguntar se existe um artigo sobre o samba como controlador de domínio e se ele já pode controlar o domínio com políticas de grupo como um servidor windows, quero dizer, para evitar alterações nas propriedades de endereços de rede, usando pendrives, etc.
Olá, como está o Fico, instalei o Samba 3.6 com LDAP e LAM 3.7 - gostaria de saber se você sabe como permitir que os usuários alterem a senha ao iniciar a seção já que me diz "você não tem permissão para alterar sua senha" saudações ...