Linux + Samba como PDC

Nesse artigo abordaremos como configurar o Samba como Primary Domain Controler (PDC), incluindo criação de scripts de logon, configuração de estações Windows e etc.

[ Hits: 274.670 ]

Por: Rogério Tomassoni em 15/09/2006


Entendendo a configuração do Samba



Para configuração é preciso editar o arquivo onde fica toda configuração do Samba, smb.conf, por questão de segurança faça uma cópia do arquivo original assim:

# cp smb.conf smb.conf.orig

Pronto, agora podemos editar o smb.conf com o editor de sua preferência. Iremos para configuração básica para o funcionamento do Samba como PDC.

Na seção "global" definimos variáveis que afetam diretamente o comportamento do Samba.
  • workgroup = Aqui é o domínio ou grupo a qual esta máquina fará parte, é o que vai aparecer na tela de login na opção "fazer logon em:" .
  • netbios name = Nome da máquina. Quando o Samba não consegue resolver o nome do servidor pelo DNS, será utilizado o nome declarado aqui. Informação muito útil, coloque o mesmo nome encontrado no HOSTNAME. Utilize o comando hostname para verificar o nome da máquina. Esse nome aparecerá no ambiente de rede.
  • server string = Breve comentário sobre o servidor.
  • keepalive = Esta opção é usada para verificar se existe algum cliente que travou. É representado por tempo em segundos, o valor padrão é 5 minutos (300s), podendo ser alterado segundo a necessidade. Para redes com poucas máquinas o valor 30 é uma boa opção, se ajustado com 0 não será verificado.
  • deadtime = Isto diz ao Samba para fechar todas seções de clientes inativos após 10 minutos, um cliente é considerado inativo quando não está enviando nem recebendo dados, o valor padrão é 0, que diz que nunca será fechado.
  • logon script = Especifica o script que será usado quando o usuário efetuar logon, a opção %U diz que os script possui o nome do usuário, ou seja, cada usuário teria um script.
  • logon path = Indica o diretório onde ficarão os scripts de logon, especificar um "logon path" sem caminho evita armazenar dados do usuário no servidor, além de não gerar mensagem de erro.
  • logon drive = Força o mapeamento do diretório home do usuário como unidade j: na máquina cliente, podendo ser trocado por qualquer outra letra que esteja disponível na máquina cliente. Especificar uma letra longe garante que o mapeamento será efetuado com sucesso.
  • domain logon = Determina se será permitido logon no Samba. Deve ser ajustado como yes.
  • os level = Esse valor é usado quando há uma disputa entre máquinas servidoras, especificar um valor alto garante que esse servidor vencerá a eleição caso seja realizada, garantindo sua prevalência. Máquinas Windows usam o valor 32. Um valor recomendado é 100.
  • prefered master = Se o Samba poderá efetuar uma eleição para o domain master. Deve ser ajustado como yes.
  • domain master = Especifica que será o servidor master do domino. Deve ser ajustado como yes.
  • security = A segurança será feita sobre os usuários, permitirá que o usuário faça logon em qualquer host da rede cadastrada no Samba.
  • socket options = Melhora o desempenho.
  • passwd program = Caminho para o binário responsável pela troca de senha, o padrão é /usr/bin/passwd %u, o %u é o nome do usuário.
  • passwd chat = Utilizado para trocar senha a partir da estação cliente Windows, juntamente com o passwd program.

Na seção "netlogon" é onde ficarão os arquivos de lote, por exemplo, os scripts de logon dos usuários, ajustados na variável global "logon script".
  • comment = Breve comentário sobre esta seção. Não é necessário.
  • path = Caminho completo do diretório que irá conter os scripts. Certifique-se de que ele exista, podendo o administrador criar onde quiser, basta colocar o caminho aqui.
  • guest ok = Se será permitido acesso de visitantes. Ajustar como "yes".
  • browseable = Se esta seção será visível no ambiente de rede. Ajustar como "no".

Após todas as configurações terem sido efetuadas, salve o arquivo e execute o comando:

# testparm /etc/samba/smb.conf

Ele irá verificar se existe erros no arquivo de configuração smb.conf. Acostume-se a usá-lo, é de grande eficiência.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Baixando e instalando o Samba
   3. Entendendo a configuração do Samba
   4. Exemplo do smb.conf configurado
   5. Ajustes finos (usuários, grupos, máquinas)
   6. Criando script de logon
   7. Configurando as estações
Outros artigos deste autor

Openfire + Gateway + MSN

Uma abordagem ao eGroupware como solução para agendamento

Introdução ao framework Mentawai

Squid e firewall em 5 minutos

Leitura recomendada

Samba no Arch Linux (para principiantes)

Servidor Samba PDC para Windows XP em 3 passos

Samba - Configurado como PDC

Slackware como controlador de domínio

Samba e seu processo de resolução de nomes

  
Comentários
[1] Comentário enviado por xALEXANDRE em 15/09/2006 - 22:08h

Belo artigo... Parabéns!

[2] Comentário enviado por 52wz1h em 16/09/2006 - 21:54h

Parabéns pelo artigo. Gostaria de saber de uma coisa. Como fazer um cliente Linux logar neste PDC? Já vi algumas configurações no guia do hardware e fiquei espantado com tantas alterações que precisavam ser feitas em alguns arquivos, será que não existe algo mais simples utilizando samba? Obrigado.

[3] Comentário enviado por edimilson.gomes em 18/09/2006 - 13:32h

Fera... funciona mesmo....

[4] Comentário enviado por fernoliv em 18/09/2006 - 23:58h

Valeu mano, obrigado! Me livrou a cara ehehe!

Abraços,

Fernando.

[5] Comentário enviado por tomassoni em 19/09/2006 - 08:49h

Então ainda não fiz linux logar no PDC, vou ficar devendo essa .... :( assim que eu tiver tempo farei esse teste .... caso faça antes .... coloque ai ... :)

[6] Comentário enviado por kernel_sys em 19/09/2006 - 15:54h

Muito bom artigo

[7] Comentário enviado por angeloshimabuko em 26/09/2006 - 02:13h

Uma pequena correção: o NetBEUI (que foi criado pela IBM e não pela MS) é um protocolo que funciona entre as camadas 3 e 4 (rede e transporte) do modelo OSI, enquanto que SMB e CIFS são protocolos das camadas 6 e 7 (apresentação e aplicação) no mesmo modelo. Portanto, não podem ser equivalentes, como está no primeiro parágrafo.

[8] Comentário enviado por tomassoni em 26/09/2006 - 06:30h

Ok, valeu pela correção ! Eu tinha essa duvida mesmo, ta certo que não deveria ter postado se havia duvidas, porém sempre encontramos alguém para nós ajudar. Valeu pela atenção!

[9] Comentário enviado por decohab em 02/11/2006 - 03:02h

Depois de muito tempo apanhando com Samba o seu artigo me serviu de modelo...

Parabéns exelente artigo e obrigado por ajudar a mim e outros que estão estudando linux..

!!Valew!!

[10] Comentário enviado por edsinfo em 08/11/2006 - 20:01h

Muito bom, me ajudou muito! valew

[11] Comentário enviado por lammer em 15/01/2007 - 09:37h

aew...olha oq q aconteceu quando eu executei o comando ./configure --prefix=/etc/samba
eu fiz algo errado ????
eu so novo..naum intendo muito
eu quero entrar no dominio da empresa e poder imprimir no servidor de impressao
mi ajudem


ricardo@linux-Suse:~/Desktop/samba-3.0.23b/source> ./configure --prefix=/etc/samba
SAMBA VERSION: 3.0.23b
checking for -fPIE...
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
ricardo@linux-Suse:~/Desktop/samba-3.0.23b/source>

[12] Comentário enviado por tomassoni em 29/01/2007 - 06:37h

lammer, vc nao deve ter o gcc isntaldo corretamente na maquina.....
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
Olha só a mensagem....experimente instalar o gcc e suas dependencias....
Se nao der certo avise-nos....
Ate

[13] Comentário enviado por castanon em 25/07/2007 - 14:18h

Tomassoni, ótimo artigo.

Parabéns pela clareza e ricos detalhes das configurações.


[14] Comentário enviado por guimfonseca em 24/08/2007 - 09:08h

COmo fazer para mapear uma unidade com o comando net use com login e senha automaticos ???

[15] Comentário enviado por tomassoni em 28/08/2007 - 15:51h

Vc criou o arquivo com o conteudo, por exemplo
comando| letra da unidade | ip_servidor + dir | se e persistente
net use P: \\192.168.1.3\publico /yes
net use I: \\192.168.1.3\iso /yes

e la no smb.conf apontou pra ele?

[global]
workgroup = Exemplo
netbios name = exemplo
server string = exemplo
admin users = @admin
time server = yes
keepalive = 20
logon script = todos.bat
logon path =
logon drive = J:
domain logons = yes
os level = 100
prefered master = yes
character set = ISO8859-1
client code page = 850
domain master = yes
add user script = /usr/sbin/useradd -m %u
add machine script = /usr/sbin/adduser -g maquinas -d /dev/null -s /bin/false -M %u
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
null passwords = no
passwd program = /usr/bin/passwd %u
passwd chat = "*New*UNIX*password*" %n\n "*Retype*new*UNIX*password*" %n\n" *passwd:*all*authentication*tokens*updated*successfully*"
preserve case = no
short preserve case = no
veto files = /*.avi/*.mid/*.mpeg/*.mov/*.mp3/*.wma/*.wmv/*.src/*.mpg/*.bmp/*.{*}/;
delete veto files = yes


[netlogon]
comment = Servico de logon
path = /home/samba/netlogon <-- aqui !!!!!!
guest ok = yes
browseable = no

qualquer coisa manda ai ...

[16] Comentário enviado por emersonba em 06/09/2007 - 10:00h

gostei muito do artigo, amigo, e gostaria de uma ajuda sua, configurei o samba e quando executo o comando net groupmap modify ntgroup="Domain Admins" unixgroup=admin, retorna a mensagem

NT group Domain Admins doesnt exist in mapping DB

[17] Comentário enviado por tomassoni em 10/09/2007 - 14:55h

Este procedimento difere nas versões 2.x e 3.x do Samba. Sendo assim, se você não sabe a versão de seu Samba, execute o comando "smbd -v" para verificar esta informação. Tendo em posse a versão do Samba, basta seguir os passos apropriados:

-- Samba 2.x --
No Samba 2.x, basta acrescentar no smb.conf a seguinte linha:
Código:

domain admin group = god

Onde "god" é o nome de seu grupo Unix que foi criado no passo anterior. Detalhe: este parâmetro aceita somente grupos, não queira incluir um nome de usuário nesta diretiva!
Feita a alteração, é necessário reiniciar o serviço Samba. Para isto, você pode usar os comandos "service smb restart" ou "/etc/init.d/smb restart"

-- Samba 3.x --
Já no Samba 3.x, você deve executar o seguinte comando:
Código:

net groupmap modify ntgroup="Domain Admins" unixgroup=god

Isto associará o grupo "Domain Admins" (Administradores do Domínio) ao grupo Unix "god"

Caso ainda não consiga poste ai.

[18] Comentário enviado por emersonba em 10/09/2007 - 18:40h

a versao do samba é 3..0.24, o unixgroup = aqui coloca o nome do dominio que criei????


olha fiz esse smb.conf
[global]
netbios name = servidor
workgroup = assistech
security = user
domain master = yes
logon script = netlogon.bat
security = user
prefered master = yes
local master = yes
domain logons = yes
encrypt passwords = yes
os level = 99

[homes]
commnet = Home Directories
valid users = %S
create mask = 0700
directory mask = 0700
browseable = yes

[dados]
path = /dados
available = yes
browseable = yes
writable = yes
read only = no
public = yes
valid users = root, ecjinfo1, teste, emerson (fiz esses usuarios para testar)

qdo vou entrar no dominio no winxp da a mensagem que voce nao tem permissao para logar nesta estaçao.




[19] Comentário enviado por guidoms em 11/09/2007 - 19:35h

Na minha maquina nao tinha o ntgroup criado, fiquei me batendo ate encontrar a dica do kayer_4:

# net groupmap list

Exemplo da minha listagem:

Domain Admins (S-1-5-21-1826733997-2455195794-3424030029-512) -> root

1° - Caso para você não apareça nada então você vai ter que criar:

# net groupmap add ntgroup="Domain Admins" rid=512 unixgroup=root

2° - Caso já exista mas ele está apontando para outro grupo, então modifique:

# net groupmap modify ntgroup="Domain Admins" rid=512 unixgroup=root

Confira para ver se você fez certo:

# net groupmap list

Domain Admins (S-1-5-21-1826733997-2455195794-3424030029-512) -> root

Agora os usuários do grupo Root são administradores no Windows também!!!

[20] Comentário enviado por emersonba em 18/09/2007 - 20:48h

qdo executo o commando net groupmap modify ntgroup="Domain Admins" rid=512 unixgroup=root
da a mensagem,, Bad option: rid=512

qdo tento ingressar a maquina win2000 no dominio da a mensagem: nao foi possivel localizar o usuario.

[21] Comentário enviado por emersonba em 05/10/2007 - 14:35h

porque q quando tento ingressar no dominio, so da a mensagem: nao foi possivel localizar o usuario??????

[22] Comentário enviado por walterti em 30/12/2007 - 14:57h

As estações teão efetuando logon normalmente entretanto não consigo faze-las executar o script de logon automatico... são todas windows xp, existe alguma necessidade de modificação nelas????
segue abaixo meu smb.conf

a parte de perfil movel (sysvol) eu implementei usando o tutorial do hugoalvarez em http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=7252

[global]
workgroup = olimpus
netbios name = prometeus
security = user
server string = Samba Server
logon script = \\prometeus\netlogon\mapear.bat
logon path = \\prometeus\sysvol\%U
logon drive = f:
domain logons = yes
os level = 100
prefered master = yes
domain master = yes
security = user
socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192
passwd program = /usr/bin/passwd %u
passwd chat = "*New*UNIX*password*" %n\n "*Retype*new*UNIX*password*" %n\n" *passwd:*all*authentication*tokens*updated*successfully*"
unix charset = iso8859-1
display charset = cp850


[Files]
comment = Diretorio Geral de Arquivos
path = /files
public = yes
read only = no
writeable = yes
create mask = 0777
guest ok = yes

[netlogon]
comment = Servico de logon
path = /etc/samba/netlogon
guest ok = yes
browseable = no
writable = yes

[sysvol]
comment = System Volume
path = /sysvol
guest ok = yes
writable = yes
share modes = no
browseable = no


[23] Comentário enviado por tomassoni em 03/01/2008 - 16:42h

Cara tenta deixar as barras assim:
logon script = \\prometeus\netlogon\mapear.bat
logon path = \\prometeus\sysvol\%U

deixa assim:
logon script = /prometeus/netlogon/mapear.bat
logon path = /prometeus/sysvol/%U

Veja se existe esses diretorios neh ;)

[24] Comentário enviado por tomassoni em 03/01/2008 - 16:45h

Cara tenta deixar as barras assim:
logon script = \\prometeus\netlogon\mapear.bat
logon path = \\prometeus\sysvol\%U

deixa assim
logon script = /prometeus/netlogon/mapear.bat
logon path = /prometeus/sysvol/%U

[25] Comentário enviado por thiago.campos em 07/01/2008 - 11:11h

?comentario=
Alguém já utilizou o parâmetro nt acl support? Estou tendo dificuldades para implementa-lo.

[26] Comentário enviado por tsanches em 21/06/2008 - 17:29h

Muito Bom artigo, explicou de forma excelente.
Valeu :-)
TSANCHES

[27] Comentário enviado por juninhosilva em 02/12/2008 - 09:29h

Ola amigo muito bom o artigo, porem ainda nunca montei um samaba com pdc vou levar seu artigo como base para meu primeiro mas fiquei com uma duvida, eu quero que tudo que for salvo no documentos e settings dos usuarios fique no meu servidor sendo assim nesse arquivo de conf seu o homes já faria isso?

Abraços

[28] Comentário enviado por jremerich em 11/12/2008 - 11:32h

Cara, seguinte....

Eu estou tentando montar um diretorio que está em uma máquina Windows 98. Este diretório está compartilhado para todos os usuários, logo não precisa de login.

Só que está dando um monte de erros:

smbclient -L XXX.XXX.XXX.XXX
session request to XXX.XXX.XXX.XXX failed (Called name not present)
session request to XXX failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)
---
sudo mkdir /mnt/axs
sudo mount -t cifs -o guest //XXX.XXX.XXX.XXX/axs /mnt/
mount error 2 = No such file or directory
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
---
sudo smbmount //XXX.XXX.XXX.XXX/axs /mnt -o guest
Warning: mapping 'guest' to 'guest,sec=none'
mount error 2 = No such file or directory
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)

Já tentei até criar link simbólico! hehehe

Mas o interessante é que se eu digitar no nautilus smb://XXX.XXX.XXX.XXX/axs ele acessa e monta! =/

Eu preciso que esse diretório seja montado automaticamente ao inicializar o sistema.

Agradeceria se ajudassem!

[29] Comentário enviado por gusfo_2 em 19/08/2009 - 17:16h

Caro colega....

Ao utilizar o comando net groupmap modify ntgroup="Domain Admins" unixgroup= admin
me a seguinte resposta:


Ignoring unknown parameter "hostname"
Can't map to an unknown group type

Qual a minha saida????

[30] Comentário enviado por tomassoni em 19/08/2009 - 19:19h

E ai beleza, cara eu nunca vi essa mensagem, mas faz o seguinte vamos por partes vou tentar ajudar.
Lista os seus grupos para ver se existe.

# net groupmap list
a saida deve ser algo como
Domain Admins (S-1-5-21-2547222302-1596225915-2414751004-512) -> domadmin
Domain Users (S-1-5-21-2547222302-1596225915-2414751004-513) -> domuser
Domain Guests (S-1-5-21-2547222302-1596225915-2414751004-514) -> domguest

Ai você com o comando assima estaria modificando o grupo Domain Admins, fazendo que ele aponte para o grupo que também deve existir no /etc/group certo?! existe?

Bom agora so por desencargo, veirifque o nome do seu host
# hostaname
E verifique o /etc/host

Caso não exista o grupo Domain Admins crio já realizando o mapeamento.

#net groupmap add ntgroup="Domain Admins" unixgroup=admin rid=512 type=d

o rid, é importantissímo, e type você pode ver na documentação oficial, de onde tirei os demais comandos acima, verifique a tabela.

http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/groupmapping.html

Bom posta ai o resultado.








[31] Comentário enviado por jonasvol em 20/12/2012 - 16:51h

Parabéns parceiro!
Artigo bastante esclarecedor.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts