[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