[LinuxFocus-icon]
Início  |  Mapa  |  Índice  |  Procura

Novidades | Arquivos | Links | Sobre LF
[an error occurred while processing this directive]
convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
por Éric Seigne
<erics(at)rycks.com>

Sobre o autor:

Trabalho para o mundo de software livre e, entre outras coisas, desenvolvo aplicações para aceder a base de dados web utilizando utilitários como o PostGreSQL ,MySQL e o PHP. Para tornar livre o meu modo de trabalhar (ser capaz de ter outro trabalho de tempos em tempos... como começar um novo projecto C) comecei, recentemente o meu próprio negócio. Para piorar as coisas, sou ainda um membro da ABUL www.abul.org (e ainda não paguei a minha subscrição!).



Traduzido para Português por:
Bruno Sousa <bruno(at)linuxfocus.org>

Conteúdo:

 

Configuração do Samba

[Illustration]

Abstrato:

Tentarei, explicar aqui o trabalho que tivémos para implementar um servidor linux-samba, usado como controlador de domínio para uma rede Windows.
Administração de permissões dos utilizadores, dos perfis... serão detalhados.
Este documento assenta na distribuição Debian GNU/Linux 2.2 o que pode explicar que o seu ficheiro smb.conf, por omissão, seja um pouco difirente, de acordo com a sua distribuição.
A versão do samba utilizada para este artigo foi a 2.0.7



 

Instalando o Samba

Sopunhamos que sabe um pouco de samba e que este já está instalado no seu servidor.
Se não for o caso, para uma instalação rápida, verifique:
Debian: apt-get install samba
RedHat(Mandrake): rpm -vih /mnt/cdrom/RedHat(Mandrake)/RPMS/samba*

 

O ficheiro de configuração: definições gerais

O Samba utiliza só um ficheiro de configuração, onde pode encontrar blocos tais como [global].

Só um ficheiro de configuração para o samba!


<ficheiro smb.conf mínimo>
[global]
   printing = bsd
   printcap name = /etc/printcap
   load printers = yes
   guest account = pcguest

   log file = /usr/local/samba/log.%m

[tmp]
  comment = Temporary file space
  path = /tmp
  read only = yes
  public = yes
</file>

Se correr o samba com este ficheiro de configuração, as máquinas windows, na sua rede local, serão capazes de ver na sua vizinhança da rede, que a máquina chamada (o nome da máquina Linux) partilha um directório temporário onde pode escrever.

ATENÇÃO: quando actualiza o ficheiro de configuração, deve reiniciar o samba utilizando a script /etc/init.d/samba restart (para a debian)

 

O ficheiro de configuração, parâmetros "avançados"

Verifiquemos os seguintes parâmetros:

 

Variáveis Samba

Variável Definição
Variáveis do Cliente
%a Arquitectura do Cliente
Exemplo: Win95, WfWg, WinNT, Samba ...
%I Endereço IP do cliente
%m Nome de NetBios do cliente
%M Nome de DNS do cliente
Variáveis de utilizador
%g Grupo primário do utilizador %u
%H Directório de trabalho do utilizador %u
%u Nome Unix actual do utilizador
Variáveis de partilha
%P Raiz da partilha actual
%S Nome da partilha actual
Variáveis do servidor
%h nome DNS do servidor Samba
%L nome NetBios do servidor Samba
%v Versão do Samba
Variáveis variadas
%T Data e tempo corrente

Exemplos de utilização destas variáveis: se a sua rede aloja máquinas a correr o windows 3.11 e o windows 98, pode criar dois ficheiros de configuração, um para cada sistema. utilizando a variável %a.

 

Resultado: o nosso ficheiro de configuração

<ficheiro smb.conf>

[global]
printing = bsd
printcap name = /etc/printcap
load printers = yes
guest account = nobody
invalid users = root

; altere o seu nome de netbios
netbios name = pantoufle
; isto é a interface onde deve estar à escuta
; (não precisa do samba noutra interface de rede visto que o samba
; administra a ligação à Internet!)
interfaces = 192.168.0.1/255.255.255.0

; O security user implica que todos os utilizadores tenham um conta unix no
; servidor
security = user

; O nome do grupo de trabalho a que o servidor pertence
workgroup = rycks
; Uma descrição do servidor, de leitura quando se está a apresentar os
; detalhes
; A %h é o nome DNS do servidor e %v a versão do samba
server string = %h server (Samba %v)

; Para além do ficheiro de log syslog, utilizamos também o do samba
syslog only = no

; A informação menos importante é para ser escrita no syslog,
; a restante informação encontra-se em /var/log/smb(nmb)/
syslog = 0;

; Afinemos as ligações!
socket options = IPTOS_LOWDELAY TCP_NODELAY \
SO_SNDBUF=4096 SO_RCVBUF=4096

; Utilizamos palavras-passe encriptadas. Seja cuidadoso,
; todo o cliente W95 tem de ser actualizado com o patch de segurança MS SMB
; O NT4 tem de ser actualizado com o SP3 ou superior...
; Em relação ao W3.11 não consigo lembrar-me:
; provavelmente não suporta palavras-passe encriptadas :(
encrypt passwords = yes

; Este servidor também trabalha como servidor WINS.
; O WINS permite que duas redes, utilizando intervalos diferentes de IP's
; (por exemplo 192.168.0.0/255.255.255.0 e 192.168.0.1/255.255.255.0)
; vejam os recursos partilhados de "outra" rede,
; mal o gateway esteja activo.
wins support = yes

; O nível de OS. Visto que o nosso servidor é o master do domínio, com
; logons locais, etc, é
; "superior" ao servidor NT, se houver algum!
os level = 34

; Administração de Dominio
domain master = yes
local master = yes
preferred master = yes

; Administração das ligações de domínio
domain logons = yes

; Qual a script a correr quando um cliente se liga?
; O %g corresponde ao nome do grupo primário de que o utilizador é membro
logon script = %g.bat
; Em que directório é que se podem encontrar os ficheiros das scripts?
; O %L é o nome netbios do servidor samba
logon path=\\%L\netlogon
; Onde armazenar o perfil dos utilizadores?
; O %U é o login do utilizador
logon home=\\%L\%U\winprofile

; Em que ordem devem ser verificados os resursos a serem encontrados
; pelo nome de uma máquina?
; Note o broadcast no fim ... ao contrário do windows
; que, por base, envia broadcasts.
name resolve order = lmhosts host wins bcast

; Deve o Samba ser utilizado como proxy de DNS?
dns proxy = no

; Preservar o nome dos ficheiros e a sua capitulação
; (Maiúsculas, Minúsculas)
preserve case = yes
short preserve case = yes

; Devemos sincronizar as palavras-passe do windows e do Linux?
unix password sync = yes

; O que deve ser utilizado para a sincronização de palavras-passe
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* \
%n\n *Retype\snew\sUNIX\spassword:* %n\n .

; Tamanho máximo do ficheiro de log,
; previne a saturação do directório /var
max log size = 1000

; Somos um servidor de tempo: uma boa coisa para a sincronizar
; um pouco o tempo das máquinas.
; Utilizaremos esta característica a partir do ficheiro logon .bat
time server = yes

; Especificamos onde está o netlogon.
; Só é utilizado na altura de ligação,
; assim não o temos de tornar público.
[netlogon]
path = /home/netlogon/%g
public = no
writeable = no
browseable = no

; O directório de trabalho para cada utilizador
[homes]
comment = Home Directories
browseable = no

; Pode ele escrever ?
read only = no

; A máscara por omissão do unix
create mask = 0700

; Com o propósito de segurança, a máscara
; de directório também é definida como 700!
directory mask = 0700


; Partilhamos o FTP, é mais fácil tê-lo na vizinahça da rede
; do que ter um programa especifico
[ftp]
path = /home/ftp/pub
public = yes
printable = no
guest ok = yes

; O directório temporário
[tmp]
path = /tmp
public = yes
printable = no
guest ok = yes
writable = yes

; Outro directório temporário especial
; para um utilizador a precisar de extra espaço!
[bigtemp]
path = /home/bigtemp
public = yes
printable = no
guest ok = yes
valid users = erics
writable = yes

</smb.conf file>

 

O que temos no servidor

De um forma breve, o servidor poderia ter:



<file /home/netlogon/admin.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
</file admin.bat>

<file /home/netlogon/teachers/teachers.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
regedit /s \\pantoufle\netlogon\teachers.reg
</file teachers.bat>

<file /home/netlogon/pupils/pupils.bat>
net use P: \\pantoufle\homes
net use T: \\pantoufle\tmp
net time \\pantoufle /SET /YES
regedit /s \\pantoufle\netlogon\pupils.reg
</file pupils.bat>

<file /home/netlogon/teachers/teachers.reg>
[HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\User Shell Folders]
"Personal"="P:\\"
</file teachers.reg>

<file /home/netlogon/pupils/pupils.reg>
[HKEY_CURRENT_USER\Software\Microsoft\Windows
\CurrentVersion\Explorer\User Shell Folders]
"Personal"="P:\\"
</file pupils.reg>

Este ficheiro permite a montagem automática do directório pessoal do utilizador no arranque como drive P: e o directório temporário como drive T:. O tempo do sistema também é obtido a partir do servidor samba.

NOTE: o ficheiro .bat deve ter a mudança de linha no "modo DOS". O modo mais fácil para criar este ficheiro é com o notepad, por exemplo, e enviá-lo para o servidor.

 

Definindo a política de segurança do sistema (C) (TM) (R)

Proteger o Windows, é quase possível, utilizando um controlador de domínio.

Isto é um título! Bem, Roubei-o de um documento da MS respeitante à política de segurança deles.

Assim, para criar uma política de sistema Windows, para, por exemplo, evitar que alguns utilizadores (todos ?) corram o regedit, um programa DOS, etc, tem de utilizar o POLEDIT que se encontra no CD do Windows 98.

Corra o PolEdit, veja a sua ajuda, aponte a informação... este artigo não tem por intenção ensinar-lhe como é que software proprietário funciona.

Logo que o seu ficheiro .POL esteja pronto, copie-o para o servidor samba, para o directório que se encontra na PATH do grupo [netlogon].

CUIDADO: Para clientes W9x, o ficheiro de estratégia do sistema deve ser o CONFIG.POL ... para o WindowsNT é outro nome, e por não ter NT não lho posso dizer:'(
Não, não me envie uma versão NT com o propósito de testes. De qualquer modo, obrigado. Foi muito simpático da sua parte:o)

NOTE: O PolEdit permite-lhe criar grupos de utilizadores e utilizadores, mas ainda não o conseguimos. Só o utilizador criado por omissão é que é tido em conta.

Por exemplo, se eu criar um grupo "admin" no PolEdit, com permissão de editar o regedit, ao ligar-me como "erics" ("admin" sendo o seu primeiro grupo), Eu não posso correr o regeedit:(

Contudo crie um utilizador "erics" no poledit... e trabalhará.

Visto que não nos vemos a criar 1056 utilizadores no poledit e a administração global dos utilizadores é mais interessante, "oferecemos" o seguinte truque:

Para fazer isto, andámos à volta do problema: criámos 3 ficheiros config.pol somente com os utilizadores por omissão, no servidor Linux temos:
/home/netlogon/teachers/CONFIG.POL
/home/netlogon/teachers/teachers.bat
/home/netlogon/pupils/CONFIG.POL
/home/netlogon/pupils/pupils.bat
/home/netlogon/admin/CONFIG.POL
/home/netlogon/admin/admin.bat
E alterámos o ficheiro smb.conf para ter isto em conta:

<smb.conf file>
[netlogon]
; adicionámos o %g para meter o netlogon apontar para um directório
; diferente do grupo de utilizador, no qual o ficheiro config.pol
; corresponde a cada perfil de grupo de utilizador.
path = /home/netlogon/%g
public = no
writeable = no
browseable = no
</smb.conf file>

 

Configuração das máquinas Windows

Com um pouco de sorte, 20 cliques de rato e um reboot devem ser suficientes para configurar o windows!

Para um cliente do tipo Win98

Clique em Start/Parameters/Configpanel e duplo-clique em Network

Instale:

network configuration

De seguida clique no tab de "Identificação" e forneça o nome de computador e o respectivo workgroup.
Identity

Clique no "Controle de Acesso" e seleccione a checkbox com o controle a nível de utilizador
Access control

Volte novamente ao tab de configuração e dê um duplo-clique em "Cliente para redes MS"
Client for MS network

Não se esqueça de configurar o suporte TCP/IP:
Duplo-clique em TCP/IP
Endereço IP:

A configuração WINS:  

Notas "personalização/performance/bom senso?"

No trabalho, rapidamente aparece um estrangulamento devido à utilização dos perfis do windows.

De facto, o perfil está cheio de coisas que a MS decidiu serem importantes como a cache do IE, a cache do OutLook, etc.

Em suma, isto significa que cerca de 10MB serão transferidos ao ligar-se à máquina (contudo, o meu perfil é um "clássico", uma imagem de fundo, ie e outlook...) e 10MB serão transferidos para o servidor ao desligarmos.

10 MB por cada utilizador, numa sala com 15 máquinas (tamanho "normal" de um laboratório, por exemplo), faz 150MB e se o edifício tiver 10 salas... calcule somente o tempo que demoraria quando os utilizadores se desligam ao tocar a campanhia.

Devia antecipar-se e deligar-se 5... (bem tenho de admitir que era o que eu fazia quando era estudante) em vez de passados 5 minutos. É um pouco como a circulação do tráfego das grandes cidades: é melhor ir 10 minutos antes do que passadas 2 horas!

Assim, de acordo com a política que implementar pode ser uma boa ideia montar o directório de trabalho na drive P: (por exemplo, P de Pessoal) para toda a gente e educar os utilizadores: "guarde os seus documentos na drive P e não nos Meus Documentos, caso contrário não poderão ser recuperados".

De seguida, tem de encontrar o software capaz de ser configurado para ter as bookmarks em P:\bookmarks.html e o mesmo para os devidos parâmetros.

Nem sequer sei se tal existe no mundo do Windows!

Se está ciente de uma solução, escreva um artigo acerca disto, isto é conhecimento para partilhar!

 

Questões e sugestões a seguir

É possivel ter vários grupos de trabalho no mesmo domínio, como é que isto pode ser administrado, é possivel partilhar os problemas entre vários GNU/Linux Samba?

Como utilizar ambos os servidores NT e Samba?

A configuração dos clientes NT: o equivalente ao CONFIG.POL tem outro nome sob o NT.

Um problema real quando se tem um só servidor Samba (e nenhum NT): Estou a trabalhar sob o W98 e quero partilhar um recurso local, a minha impressora por exemplo:

Apresentação da partilha da minha impressora

Seguindo o clique do botão adicionar...

BOAS NOTÍCIAS: alguém me deu a solução. O Suficiente para seleccionar "controle de nível de acesso a recurso" durante o passo 3 da configuração do windows.

 

Agradecimentos

Ao Bruno <bcarrere(at)asp-france.fr> pelo seu trabalho de prova de leitura e pela sua ajuda preciosa :o)

Ao JohnPerr por me incitar a escrever o meu primeiro artigo para a LinuxFocus, e por o ter traduzido para Inglês.
Ao Michel Billaud também conhecido por MiB por todas as soluções que encontrou para os nossos problemas; ensninou-nos truques como o strace, etc.:o)
Ao Etienne, Éric, e ao homem invisivel cujo nome me esqueci, desculpe-me por isso! Obrigado, então, por ter partilhado o seu conhecimento dos cursos da MS acerca de servidores NT.
Ao Jean Peyratout, precisamos de dizer porquê? Seria muito longo.
A Abul por assim falar
Rycks por me fornecer tempo e recursos para desenvolver e documentar software livre.

 

Recursos

Livro Online da O'Reilly: http://www.oreilly.com/catalog/samba/chapter/book/index.html

Este documento será actualizado em a secção de documentação da rycks.com

 

Forma de respostas para este artigo

Todo artigo tem sua própria página de respostas. Nesta página você pode enviar um comentário ou ver os comentários de outros leitores:
 página de respostas 

Páginas Web mantidas pelo time de Editores LinuxFocus
© Éric Seigne, FDL
LinuxFocus.org

Clique aqui para reportar uma falha ou para enviar um comentário para LinuxFocus
Informação sobre tradução:
fr --> -- : Éric Seigne <erics(at)rycks.com>
en --> pt: Bruno Sousa <bruno(at)linuxfocus.org>

2002-05-04, generated by lfparser version 2.27