Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Você está aqui: Home  → Arquivo Dicas-L

 

Thinking in Patterns, com Bruce Eckel

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Publicar em del.icio.us

Usando o Samba como controlador de domínio (PDC) - Parte 1

Colaboração: Carlos E. Morimoto

Data de Publicação: 10 de Maio de 2006

Numa pequena rede, manter as senhas dos usuários sincronizadas entre as estações Windows e o servidor Samba não chega a ser um grande problema. Mas, em redes de maior porte, isto pode tornar-se uma grande dor de cabeça e passar a consumir uma boa parte do seu tempo.

Para solucionar o problema, existe a opção de usar o servidor Samba como um controlador primário de domínio (PDC), onde ele funciona como um servidor de autenticação para os clientes Windows e (opcionalmente) armazena os perfis de cada usuário, permitindo que eles tenham acesso a seus arquivos e configurações a partir de qualquer máquina onde façam logon.

Ao cadastrar um novo usuário no servidor Samba, ele automaticamente pode fazer logon em qualquer uma das estações configuradas. Ao remover ou bloquear uma conta de acesso, o usuário é automaticamente bloqueado em todas as estações. Isto elimina o problema de sincronismo entre as senhas no servidor e nas estações e centraliza a administração de usuários e permissões de acesso no servidor, simplificando bastante seu trabalho de administração.

O primeiro passo é modificar o arquivo de configuração do Samba. Existem algumas regras adicionais para transformar o Samba num controlador de domínio. A seção "global" deve conter as linhas " domain master = yes", "domain logons = yes" e "logon script = netlogon.bat" e (importante) não deve conter a linha "invalid users = root" pois precisaremos usar a conta de root no Samba ao configurar os clientes. É preciso adicionar também um compartilhamento chamado "netlogon", que conterá o script de login que será executado pelas estações.

Este é um exemplo de arquivo de configuração do Samba para um controlador de domínio. Ele não contém as configurações para compartilhamento de impressoras, que você pode adicionar (juntamente com os compartilhamentos desejados) depois de testar a configuração básica:

  [global]
      workgroup = Dominio
      netbios name = GDH
      server string = Samba PDC
      domain master = yes
      preferred master = yes 
      local master = yes
      domain logons = yes
      logon script = netlogon.bat
      security = user
      encrypt passwords = yes
      os level = 100
  [netlogon]
      comment = Servico de Logon
      path = /var/samba/netlogon
      guest ok = Yes
      browseable = No
  [homes]
      comment = Diretorio Home
      valid users = %S
      guest ok = Yes
      browseable = No

Acostume-se a sempre rodar o comando "testparm" depois de fazer alterações no arquivo, pois ele verifica a sintaxe e indica erros de configuração. Ao configurar o Samba como PDC, ele deve exibir a mensagem: "Server role: ROLE_DOMAIN_PDC".

Depois de configurar o arquivo, verifique se a conta root do sistema foi cadastrada no Samba e se as senhas estão iguais. Caso necessário, use o comando "smbpasswd -a root" para cadastrar o root.

Aproveite para criar a pasta "/var/samba/netlogon" e configurar corretamente as permissões:

  # mkdir -p /var/samba/netlogon
  # chmod 775 /var/samba/netlogon 

Com o "775" estamos permitindo que além do root, outros usuários que você adicionar no grupo possam alterar o conteúdo da pasta. Isso pode ser útil caso existam outros administradores de rede além de você.

Cadastre agora os logins dos usuários, com as senhas que eles utilizarão para fazer logon a partir das máquinas Windows. Neste caso não é preciso se preocupar em manter as senhas em sincronismo entre o servidor e as estações. Na verdade, as contas que criamos aqui não precisam sequer existir nas estações, pois o login será feito no servidor. Para adicionar um usuário de teste "joao", use os comandos:

# adduser joao # smbpasswd -a joao

É importante criar também a pasta "profile.pds" dentro do diretório home do usuário, onde o cliente Windows armazena as informações da sessão cada vez que o usuário faz logon no domínio:

# mkdir /home/joao/profile.pds

Ao rodar este comando como root, não se esqueça de ajustar as permissões da pasta, de forma que o usuário seja o dono:

# chown -R joao.joao /home/joao/profile.pds

Além das contas para cada usuário, é preciso cadastrar também uma conta (sem senha) para cada máquina. Você deve usar aqui os mesmos nomes usados na configuração de rede em cada cliente. Se a máquina se chama "athenas" por exemplo, é preciso criar um login de máquina com o mesmo nome:

  # useradd -d /dev/null -s /bin/false athenas$
  # passwd -l athenas$
  # smbpasswd -a -m athenas

Note que nos dois primeiros comandos é adicionado um "$" depois do nome, que indica que estamos criando um login de máquina, que não tem diretório home (-d /dev/null), não possui um shell válido (-s /bin/false) e está travada (passwd -l). Esta conta é válida apenas no Samba, onde é cadastrada com a opção "-m" (machine). Estas contas de máquina são chamadas de "trusted accounts" ou "trustee".

Lembre-se que para usar este comando o arquivo "/etc/shells" deve conter a linha "/bin/false". Se preferir, você pode adicionar as contas de máquina dentro de um grupo do sistema ("maquinas" ou "machines" por exemplo). Neste caso, crie o grupo usando o comando "groupadd" e use o comando abaixo para criar as contas de máquina já incluindo-as no grupo:

  # useradd -g maquinas -d /dev/null -s /bin/false athenas$

Por último, é necessário criar o arquivo "/var/samba/netlogon/netlogon.bat", um script que é lido e executado pelos clientes ao fazer logon. Você pode fazer muitas coisas através dele, mas um exemplo de arquivo funcional é:

  net use H: /HOME
  net use x: \\gdh\arquivos /yes 

Este script faz com que a pasta home de cada usuário (compartilhada pelo Samba através da seção "homes") seja automaticamente mapeada como a unidade "H:" no cliente, o que pode ser bastante útil para backups por exemplo. Naturalmente, cada usuário tem acesso apenas a seu próprio home.

A segunda linha é um exemplo de como fazer com que determinados compartilhamentos do servidor sejam mapeados no cliente. O "net use x: \\gdh\arquivos /yes" faz com que o compartilhamento "arquivos" (que precisaria ser configurado no smb.conf) seja mapeado como o drive "X:" nos clientes.

Lembre-se que o "gdh" dentro do netlogon.bat deve ser substituído pelo nome do seu servidor Samba, configurado na opção "netbios name =" do smb.conf.

Mais um detalhe importante é que o arquivo do script de logon deve usar quebras de linhas no padrão MS-DOS e não no padrão Unix (que é o padrão da maioria dos editores de texto do Linux). Você pode criá-lo usando um editor de texto do Windows ou usar algum editor do Linux que ofereça esta opção. No Kwrite por exemplo, a opção está em: "Configurar > Configurar Editor > Abrir/Salvar > Fim de linha > DOS/Windows".

Mais uma configuração útil (porém opcional) é fazer com que o servidor armazene os arquivos e configurações do usuário (recurso chamado Roaming Profiles), fornecendo-os à estação no momento em que o usuário faz logon. Isto permite que o usuário possa trabalhar em outras máquinas da rede e faz com que seus arquivos de trabalho sejam armazenados no servidor, diminuindo a possibilidade de perda de dados.

Por outro lado, isto faz com que seja consumido mais espaço de armazenamento do servidor e aumenta o tráfego da rede, já que os arquivos precisam ser transferidos para a estação a cada logon. Isto pode tornar-se um problema caso os usuários da rede tenham o hábito de salvar muitos arquivos grandes na área de trabalho.

Note que o servidor não armazena todos os arquivos do usuário, apenas as configurações dos aplicativos, entradas do menu iniciar, cookies, bookmarks e arquivos temporários do IE e o conteúdo das pastas Desktop, Modelos e Meus Documentos.

Para ativar o suporte no Samba, adicione as duas linhas abaixo no final da seção "global" do smb.conf (abaixo da linha "logon script = netlogon.bat"):

  logon home = \\%L\%U\.profiles
  logon path = \\%L\profiles\%U

A variável "%L" neste caso indica o nome do servidor e o "%U" o nome do usuário que está fazendo logon. Quando por exemplo o "joao" faz logon é montado o compartilhamento "\\gdh\profiles\joao"

Adicione também um novo compartilhamento, adicionando as linhas abaixo no final do arquivo:

  [profiles]
      path = /var/profiles
      writeable = Yes
      browseable = No
      create mask = 0600
      directory mask = 0700

Crie a pasta "/var/profiles", com permissão de escrita para todos os usuários:

  # mkdir /var/profiles
  # chmod 1777 /var/profiles

Cada usuário passa a ter uma pasta pessoal dentro da pasta ("/var/profiles/joao", por exemplo) onde as configurações são salvas. Apesar das permissões locais da pasta permitirem que qualquer usuário a acesse, o Samba se encarrega de permitir que cada usuário remoto tenha acesso apenas ao seu próprio profile.

As estações Windows 2000 e Windows XP utilizam os perfis móveis automaticamente, quando o recurso está disponível no servidor Samba. Você pode verificar a configuração e, caso desejado, desativar o uso do perfil móvel no cliente no "Meu Computador > Propriedades > Perfis de Usuário > Alterar tipo".


Gostou da dica? Venha fazer um curso com o autor:

Curso: Redes e servidores Linux

Com Carlos E. Morimoto

Em São Paulo, de 29/05 a 03/06 (intensivo, com aulas à tarde)

Este é um curso sobre a configuração de servidores Linux. Nele você aprende a configurar cada serviço diretamente nos arquivos de configuração ou utilizando ferramentas genéricas, sem se prender a uma única distribuição. Os exemplos dados durante o curso usam como base o Debian e Fedora, com dicas de peculiaridades do Mandriva, Slackware, Kurumin e Ubuntu.

Este é um curso intensivo, onde você passa menos tempo vendo teoria e opções pouco usadas e mais tempo aprendendo a resolver problemas do dia a dia. O formato das aulas permite que sejam abordados uma grande quantidade de temas numa única semana, oferecendo uma visão global dos recursos disponíveis e onde eles podem ser aplicados. Ao invés de fazer um curso sobre o Squid, outro sobre o Samba, outro sobre o Apache, etc., você aprende muitas coisas de uma única vez, economizando tempo e dinheiro.

Nesta turma do dia 29/05, combinou do curso de redes e o curso para iniciantes serem ministrados na mesma semana: o curso para iniciantes de segunda a sexta, das 8:00 às 11:00, e o curso de redes das 12:30 às 18:00. Fazendo o curso de redes, você tem acesso também às aulas para iniciantes e pode fazer os dois cursos simultaneamente (pagando apenas um), e assim aproveitar para tirar todas as dúvidas.

Veja mais detalhes sobre a programação de cursos, temas abordados, preços e formas de pagamento no:

http://guiadohardware.net/cursos/

Todas as aulas do curso de redes são ministradas pelo próprio Carlos Morimoto, o que garante o nível do curso. Nada de aulas inaugurais e mutretas do gênero :)

Veja a relação completa dos artigos de Carlos E. Morimoto

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.02/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (652 votos)

Recomende este site
Recomendar este artigo


Versão para impressão


Opinião dos Leitores

christhiano
24 Jun 2008, 09:08
Amigo, eu ja havia conseguido colocar micros com xp no dominio pelo seu tutoria, agora estou testando novamente em uma nova instalacao do fedora 8 mais o xp nao reconhece o dominio, tem que configurar mais algo no servidor
Ricardo Alexandre S. Siqueira
01 Nov 2007, 14:46
Olá tenho que migrar os perfis dos usuários do windows 2000 para o Linux ,como faço isto?
Quero também criar os perfis no servidor para pode logar em qualquer máquina e ter o meu perfil, por exemplo.
Desde já agradeço
Ricardo
Reinaldo
19 Out 2007, 16:39
Samba como PDC esclarecer infelizmente não consegui com que o Windows fizesse parte do domínio - memso modificando parâmetros no de configuração do Windows XP - PROf (Ferramentas Adm) que pena..
Loammy
29 Set 2007, 10:47
Estava implementando esta solução a algumas semanas atrás e me deparei com um problema que consegui resolver. Se você configurar o Samba como PDC e você não ativar o Roaming Profiles, o windows XP não consegue se logar no domínio, ele apresenta um erro informando que "O nome da rede não foi encontrado " e efetua login no Windows com um usuário temporário.
Para resolver este pequeno problema, temos duas alternativas, ativar o Roaming Profiles ou ativar a seguinte opção:

Entre em executar e rode o comando gpedit.msc
Vá em Configurações do computador, Modelos administrativos, Sistema, Perfis de Usuário e ative a opção "Só permitir perfis de usuários locais".

Provavelmente este problema ocorre pois o Windows força o uso de perfil móvel quando o usuário loga-se no domínio.

Este problema foi um pouco difícil de ser resolvido, pois a mensagem que o Windows fornece digamos que não faz sentido algum.

PS: E nos meus testes nunca foi necessário alterar nenhuma configuração nas ferramentas administrativas ou qualquer chave no registro para o Windows XP se logar no domínio.
Pedro
25 Set 2007, 10:24
Alguem andou copiando sem descrever os meritos.
http://vivaolinux.com.br/artigos/verArtigo.php?codigo=7095
Everson
03 Set 2007, 10:20
Ótima matéria, estava procurando algo exatamente assim na internet.
Obrigado
loredan
31 Jul 2007, 21:02
prezado, quero que meu servidor linux rodando o samba e com pastas compartilhadas para estações windows, sempre solicite para acesso as pastas, usuário e senha. ou seja, o meu samba tem 10 pastas diferentes e cada uma pode ser visualizada por todos os clientes, porém a entrada nelas tem que ter solicitação de usuário e senha. Como fazer isso? meu servidor é um suse 10.1. Obrigado.
Adjailton
04 Mai 2007, 09:06
Thales...

É o seguinte, vc precisa adcionar o usuário root no samba, assim como precisa cadastrar a máquina tb!!!

Os comandos são os seguintes!

Para cadastrar o Root:
smbpasswd -a root
defina uma senha pro root

Para cadastrar a máquina:
useradd - [grupo] -s /bin/false -d /dev/null [nome_da_máquina]$

Espero ter ajudado!

Abraços!
Thales
17 Abr 2007, 20:59
Segui este tutorial, bem como a parte 2, mas estou tendo problemas quando tento registrar uma máquina windows no dominio. Eu preencho o campo dominio com MEUDOMINIO e então a janela pedindo login e senha é mostrada. Entro com o usuário root e sua respectiva senha, mas quando dou um click em ok recebo a seguinte msg de erro;
"O segunte erro ocorreu ao tentar registrar em MEUDOMINIO: o nome de rede especificado não é mais válido".

ajudas???
*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treina Linux -  Cursos de Linux e Video aulas

Cursos

Segurança em LINUX - Mão na Massa
Principais Problemas e como Evitá-los
Dia 4 de Outubro - São Paulo
Saiba mais

Biblioteca

Redes - Guia Prático
Por Carlos. E. Morimoto

Hardware - o Guia Definitivo
Por Carlos. E. Morimoto

Kurumin 7 - Guia Prático
Por Carlos. E. Morimoto

Linux: Ferramentas Técnicas, 2ed
Por Carlos. E. Morimoto

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

Google Hacking
Por JOHNNY LONG

1808
Por Laurentino Gomes

Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe

Linux: Guia do Administrador do Sistema
Por Rubem E. Ferreira

A Menina que Roubava Livros
Por Markus Zusak

Sistemas Operacionais Modernos
Por Andrew S. Tanembaum

Hardware: Curso Completo
Por Gabriel Torres

PHP para Quem Conhece PHP
Por Juliano Niederauer

Redes de Computadores: Curso Completo
Por Gabriel Torres

Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel

O Caçador de Pipas
Por Khaled Hosseini

O Médico Doente
Por Dráuzio Varella

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson

MySQL - Guia do Programador
Por André Milani

Certificação Linux
Por Uira Ribeiro

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

OpenGL: uma Abordagem Prática e Objetiva
Por Marcelo Cohen, Isabel Harb Manssour

Expressões Regulares: Uma Abordagem Divertida
Por Aurélio Marinho Jargas

Extreme Programming
Por Vinicius Manhaes Teles