[FUGSPBR] SAMBólatra - solução de PDC com Samba

Capriotti capriotti em portal7.com.br
Seg Maio 20 13:46:36 BRT 2002





Pois é, minha gente... Viciei.

Da mesma maneira que provadores de vinho e cerveja nas grandes fábricas 
ficam dependentes

dos produtos que experimentam, eu fiquei com ressaca de Samba.

Mas, de qualquer maneira, gostaria de compartilhar com vocês as soluçãoes 
que eu encontrei,

E as dúvidas que ainda tenho. Este é um passo-a-passo rápido, sem 
depuração, para quem

precisa fazer as coisas funcionarem.

Vou colocar abaixo o smb.conf mínimo para se ter o Samba funcionando como 
PDC (primary

domain controller). Isso significa que uma vez que uma estação NT/2000/9x 
se autentique

nessa máquina, ela estará autenticada para todo o domínio, podendo fazer 
acesso a shares de

outras máquinas (servidores que confiem no seu PDC, claro) sem precisar de 
outro

username/password.

É importante dizer porque eu vim a pesquisar isso, pois você pode estar 
tendo a mesma

dificuldade.

Ne minha rede eu tinha máquinas 2000 rodando em workgroup, máquinas 98 
rodando DOMAIN, e 98

rodando workgroup. E o meu todo-poderoso samba, compartilhando um share 
[publico], uma

impressora e os [home] dos usuários. Um ambiente bem heterogênio, onde tudo 
funcionava em

paz, harmonia, senhas clear text e felicidade geral.

Um certo dia o administrador de rede malvado (BOFH)- que não sou eu - 
trocou um notebook com

win98 setado como "DOMINIO" e colocou um w2000 Professioanl em domínio. E 
daí a máquina 2000

pro não imprimia nem a pau. Tive que apelar e colocar o meu Sambinha para 
rodar como PDC e

colocar toda as minhas maquininhas para domínio.

Aqui o primeiro truque de rede LanManager: máquinas 95/98 (possívelmente ME 
e XP home

também) NÃO PARTICIPAM VERDADEIRAMENTE DE DOMÍNIOS ! Essas máquinas não 
fornecem uma

"identidade de máquina" chamada de "trusted machine" ou "trusted member".

Um domínio, por definição Microsoftesca é:
Local onde existem usuários conhecidos em "locais" desconhecidos; E 
máquinas conhecidas com

características conhecidas. Máquinas que têm que ter uma cadastro.

Daí vai que um usuário tem um logon script com suas características e uma 
máquina tem o seu

script também.

Mas, para chegar até aí, cada usuário tem que ter seu cadastro no sistema, 
e cada máquina

também.

Esse cadastro - na base de usuários - é feito de maneira transparente e 
automática no

NT/2000 server, mas precisa de cuidados especiais, em especial no FreeBSD 
(sim, é

ligeiramente diferente no Linux).

Primeiro crie normalmente o cadastro do usuário, adicionando-o com o 
adduser (ou vipw ou

/stand/sysinstall, o que for mais ao seu gosto).

Agora, supondo que você tenha uma máquina NT ou 2000 (professional ou 
server) chamada COMP1:

Crie um usuário comp1$ (assim mmesmo, em letras minúsculas e com um $ no 
final). Primeira

dificuldade: O FreeBSD não vai deixar você criar um usuário com $ no nome.

A solução para esse tipo de problema é criar um usuário com o nome comp1 
usando a sua

ferramenta preferida de gerenciamento de usuário (tem gente que gosta de 
vi, tem gente que

gosta de adduser, fazer o quê... hehehe)

Garanta que esse usuário não vai ter shell, não vai ter diretório home, e 
vai ter senha

desabilitada.

Agora, para você ter uma conta de usuário com o nome comp1$ você vai ter 
que usar o vipw e

alterar o arquivo na mão.

Tipicamente uma entrada de uma "trusted machine" no /etc/passwd tem essa cara:

power$:*:5000:5001::0:0:Trusted Machine:/dev/null:/sbin/nologin

Você altera o nome, colocando o $ no final do username, certifica-se que o 
* está logo após

o username (depois do : ) para desabilitar senhas. Os números 5000 e 5001 
referem-se a UID e

GID (números sequenciais de usuário e grupo) e deveriam ser atribuídos 
automaticamente,

durante a criação da conta. /dev/null se refere ao diretório home, e por 
fim a óbvia negação

do direito de login no sistema.

Isso finaliza a tragédia grega do cadastro da máquina no banco de dados de 
usuários do

FreeBSD. Claro qeu alguém com mais de 10 máquinas na rede vai querer 
alterar o script do

addueser para ele passar a aceitar o $ como parte do nome.

Agora é o Samba que pede passagem.

Precisamos cadastrar a máquina NT no domínio; Para isso basta o comando

smbpasswd -a -m comp1

(SEM o $ no final, e com letras minúsculas).

Com isso o computador já vai ser conhecido no domínio, mas ainda não vai 
ter acesso a ele.

Mas antes de mais nada, temos que ter nosso USUÁRIO cadastrado com senha no 
samba; E, de

preferência, uma senha diferente da do sistema, caso ele tenha acesso a 
outros serviços.

Eu acho isso desejável, mas caso você seja daqueles que não concordam, veja 
referêncfias ao

winbindd nja documentação do samba.

Bom... para incluir seu usuário o comando é

smbpasswd -a username

ele vai pedir para você entrar uma senha e depois confirma-la.

Com isso a parte de cadastros já está pronta, e podemos partir para a parte 
de configuração

do Samba.

Precisaremos dos seguintes recursos: Pandeiros, cuícas e... oooopppsssss... 
samba errado.

De novo:

Vamos editar o meu smb.conf para analisar:



[global]


     netbios name = VOICE

;muito embora esteja escrito "workgroup", é o nome do seu domínio mesmo.
     workgroup = TABAJARACORP

; esta informação eu pastei um pouco para conseguir. Parece ser vital para
; o sucesso da operação que um dos usuário de administração seja o root.
;
      admin users = jose root martin Administrator administrator

;A próxima linha ainda está em testes. Eu deixei, só por via das dúvidas.
      Domain Admin Group = @wheel


; Eu alterei o local e o nome dos arquivos de log para facilitar a vida ! 
Veja o
; último share e você vai entender como nos economiza tempo !
     log file = /var/sambalog/log.%m.doc

; Vamos Garantir que esta máquina vai ser a "preferida"
; nas eleições de controladores


; os lever : Quanto menor, melhor ! Mais prioritária sua máquina vai ser em 
uma eleição.
     os level = 31
     preferred master = yes
     domain master = yes
     local master = yes

     ; security settings (tem que ser security = user para ser PDC)
     security = user

     ; Senha sempre criptografada para um PDC. Esqueça clear text...
     ; você não está mais usando workgroup ! Agora a coisa é séria !
     ;
     encrypt passwords = yes

     ; Claro que temos que explicitar que vamos trabalhar em domínio.
     domain logons = yes

     ; onde vão os profiles de usuários ? o "profiles" desta linha se 
refere ao share
     ; [profile] ali embaixo; LEIA os comentários sobre ele.

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

     ;Não sei até que ponto isso é necessário
     ; deixei ái para testar mais tarde.
     ; Fato: não vi nenhum disco H: na máquina cliente.
     logon drive = H:
     logon home = \\homeserver\%u

     ; Especificação de script de logon genérico. Dispensável.
     ; this is a relative **DOS** path to the [netlogon] share
     logon script = /usr/local/samba/scripts/logon.cmd

; Indispensável para PDC !!!

[netlogon]

     ; Inclui as três linhas seguintes a partir de um exemplo em uma lista 
de discussão,
     ; mas até agora não vi isso funcionar. Acho que pode ser deixado de fora.

     comment = On the fly creation off Logon script
     root preexec = /usr/local/samba/lib/netlogon/logonscript.pl %U %M %m
     root postexec = /usr/local/samba/lib/netlogon/logoutscript.pl %U %M %m


     ; Parece incrível, mas esse diretório está vazio até hoje. E foram 
dias de briga !
     path = /usr/local/samba/lib/netlogon
     read only = yes
     write list = @samba, @wheel
     public = no
     writeable = yes
     browsable = no
     force user = root
     force group = wheel


; share for storing user profiles - Este é uma outra história !
; O windows parece gostar muito deste share. Ele grava TODAS as 
configurações do usuário

;(especialemnte Win2000) aí !
; Cor de tela de fundo, preferências, arquivos temporários, papel de 
parede, arquivos

;gravados no desktop, TUDO !!!
;
;O meu ficou com 11 MB !
; Mas já vi configurações sem isso, e parece funcionar, pois cada máquina 
trabalha com sua

;cópia local, sem gerar tráfego na rede.
;
;A Microsoft fez isso pensando no conceito de "Usuários móveis", ou 
"roaming", onde, em

;qquer máquina que o usuário se logar vá reprodizor sua interface normal de 
trabalho.
;
; CLAAAAAAAAAAAAARO que o pentium 133 do escritório via aguentar o mesmo 
tranco que o meu

;notebook P3 933 com 256 de ram que eu uso em campo !!!
;
;Vai ser a primeira coisa que eu vou desabilitar quando puder.
;
;Gera um tráfego louco na rede sempre que uma máquina liga - e lê as 
configurações - e

desliga - gravando TUDO !
;
;Usuário tem que ter direito de escrita !

[profiles]
     path = /export/smb/ntprofile
      writeable = yes
     browsable = no
     guest ok = yes
; Verificar esse "write list"; acho que está errado ; Os perfis são 
particulares !
;Só o usuário tem que ter acesso !
     write list = @samba,root
;

; Daqui para baixo não é nada necessário, mas pode ser MUITO útil ter esses 
shares no

momento de um setup.

[samba_docs]
    path = /usr/local/share/doc/samba/htmldocs
    public = yes
    writable = no
    printable = no

[swat_docs]
    path = /usr/local/share/swat/help
    public = yes
    writable = no
    printable = no

[samba_log]
    path = /var/sambalog
    public = yes
    writable = no
    printable = no
    ; Este share é fantástico ! Não tem que ficar editando arquivo de log a 
cada
    ; 2 minutos em um shell ! É só clicar e pronto !


Palavras finais:

Quando se está na estação win2000, e a quer incluir no domínio, vai 
aparecer uma janela pedindo username e password de um usuário com direitos 
de administrador.

Tentei usar os usuários do grupo wheel, e nada. Retornava algum erro louco, 
e algumas vezes o processo do Samba abrtava com erro 6 ou 11, com mensagem 
INTERNAL ERROR nos logs, mas sem core dump.

Quando passei a usar o root, tudo funcionou ! Mas depois de ter definido o 
root como admin no smb.conf !

A priori acho que é isso, gente. Por favor, usem, testem e mandem suas 
observações para a lista E para mim em PVT, para podermos montar O 
tutorial, pois eu passei o inferno até descobrir o que não estava 
documentado. Nenhuma documentação que eu via até hoje - e foram semanas ! - 
tem todas as informações.

Possivelmente nem a minha tentativa acima, mas eu vou tentar fazer melhor !

[]s

______________________________________________
http://www2.fugspbr.org/mailman/listinfo/fugspbr



Mais detalhes sobre a lista de discussão freebsd