original in fr Éric Seigne
en to pt Bruno Sousa
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!).
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
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 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)
Verifiquemos os seguintes parâmetros:
Especificamos onde se encontra o netlogon.
Bloco dos perfis de utilizadores.
Directório de trabalho dos utilizadores.
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.
<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>
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.
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>
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:
De seguida clique no tab de "Identificação" e forneça o nome de
computador e o respectivo workgroup.
Clique no "Controle de Acesso" e seleccione a checkbox com o
controle a nível de utilizador
Volte novamente ao tab de configuração e dê um duplo-clique em
"Cliente para redes MS"
Não se esqueça de configurar o suporte TCP/IP:
Duplo-clique em TCP/IP
Endereço IP:
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!
É 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.
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.
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