Vous êtes sur la page 1sur 27

201761 Aseo[homes]Samba,parte2:ConfiguraoavanadadoSamba

Programade
Samba, parte 2: Configurao
avanada do Samba
C arlosE.Morim otocriou4/de z/2007 s10h34 11

ANTERIOR:ASEO[GLOBAL]

Aseo[homes]
PRXIMO:ACONTAGUEST

Aseo[homes]
Umavantagemdeutilizarusurios"reais"noservidorSamba,emvezdeusurioscastrados,
que voc tem a opo de compartilhar os diretrios home atravs da seo [homes] no
smb.conf. Este um servio interno do Samba, que permite compartilhar automaticamente o
diretrio home de cada usurio, sem precisar criar um compartilhamento separado para cada
um.

A configurao mais comum compartilhar os diretrios home com permisso de acesso


apenas para o respectivo usurio. Dessa forma, cada usurio tem acesso apenas ao seu
prpriodiretriohome(queaparecenoambientederedescomoumcompartilhamentocomo
mesmo nome), sem poder acessar, nem muito menos alterar o contedo dos diretrios home
dosdemaisusurios.Nessecaso,aconfiguraofica:

[homes]
validusers=%S
readonly=no
createmask=0700
directorymask=0700
browseable=no

Nonecessrioespecificarapastaacompartilhar,poisaoomitiralinha"path"oSambasabe
quedevecompartilharohomedecadausurio.Asopes"createmask=0700"e"directory
mask=0700"fazemcomquetodososarquivosepastascriadospelousuriodentrodohome
sejamacessveisapenasporelemesmo.Aopo"browseable=no"fazcomquecadausurio
possaverapenasseuprpriodiretrio,oquereforadopelaopo"validusers=%S",que
dizexplicitamentequeapenasoprpriousuriodeveteracessosuapastahome.

Uma queixa comum que ao acessar o diretrio home atravs do Samba, os usurios vero
todos os arquivos e pastas de configurao de programas que so salvos dentro do diretrio
home,oquepodeserconfuso.

Uma forma de evitar isso alterar a configurao, de forma que o Samba compartilhe uma
pastavaziadentrodohome,enoodiretriohomeemsi.C omissomantidoopropsitode
oferecerumapastaparticularparaousurio,ondeelepossasalvarseusarquivosparticulares
e seus backups, sem a poluio gerada pela presena dos arquivos de configurao. A
configuraonessecasoficaria:

[homes]
path=/home/%u/share
validusers=%S
readonly=no
createmask=0700
directorymask=0700
browseable=no

A linha "path = /home/%u/share" especifica que o Samba deve agora compartilhar a pasta
"share"dentrodohomeenomaisodiretriohomeemsi(vocpodeespecificaroutrapasta
qualquer) e a linha "valid users = %S" garante que a pasta ficar acessvel apenas para o
prpriousurio.

Naturalmente, a pasta "share" precisa ser criada dentro do home de cada usurio
manualmente. Voc pode fazer isso de forma automtica para todos os usurios usando este
minishellscript:

cd/home
foriin*do
mkdir$i/share
chown$i:$i$i/share
done

Aproveiteparacriartambmapasta"share"dentrododiretrio"/etc/skel",queusadocomo
um modelo para a criao do home de novos usurios. Isso faz com que o diretrio seja
adicionadoaohomedetodososusurioscriadosdaemdiante,deformaautomtica:

#mkdir/etc/skel/share
http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina4.html 1/4
201761 Aseo[homes]Samba,parte2:ConfiguraoavanadadoSamba
#mkdir/etc/skel/share

C oncluindo,aquivaiumalistadeoutrasvariveisdoSambaparareferncia:

%a : A verso do Windows usada, onde o "%a" substitudo pelas strings "Win95"


(Windows 95/98), "WinNT" (Windows NT 3.x ou 4.x), "Win2K" (Windows 2000 ou XP) ou
"Samba"(mquinasLinuxrodandooSamba)
%I:EndereoIPdamquinacliente(ex:192.168.1.2)
%m:Nomedamquinacliente(ex:cliente1)
%L:Nomedoservidor(ex:athenas)
%u:Nomedousurio,comocadastradonoservidorLinux(ex:joao)
%U : Nome do usurio, como enviado pelo cliente Windows (pode ser diferente do login
cadastradonoservidoremalgumassituaes)
%H:Diretriohomedousurio(ex:/home/maria)
%g:Grupoprimriodousurio(ex:users)
%S:Nomedocompartilhamentoatual(ovalorinformadoentrecolchetes,ex:arquivos)
%P:Pastacompartilhada(ovalorinformadonaopo"path",ex:/mnt/arquivos)
%v:VersodoSamba(ex:3.2.24)
%T:Dataehorrioatual

Ao longo do texto, veremos alguns outros exemplos de uso destas variveis, mas voc pode
uslas em outras situaes para criar compartilhamentos "inteligentes", que mostram pastas
diferentesdeacordocomaspropriedadesdocliente.Porexemplo,avarivel"%a"(queindica
a verso do Windows no cliente), poderia ser usada para criar um compartilhamento com
drivers,quemostrassediretamenteapastacomosdriverscorretosparaaversodoWindows
usada.Nessecaso,vocpoderiausaralgocomo:

[drivers]
path=/mnt/sda2/drivers/%a
readonly=yes

Apasta"/mnt/sda2/drivers/"incluiriaumasriedesubpastas,comosvalorespossveispara
avarivel,incluindo"Win95","WinNT","Win2K"e"Samba".Aoacessarocompartilhamento,o
clientevapenasocontedodapastacorrespondenteaosistemaoperacionalusado.
201761 AcontaguestSamba,parte2:ConfiguraoavanadadoSamba

Samba, parte 2: Configurao


avanada do Samba
C arlosE.Morim otocriou4/de z/2007 s10h34 11

ANTERIOR:ASEO[HOMES]

Acontaguest
PRXIMO:LIXEIRANOSAMBA

Acontaguest
NoWindowsXPusadoporpadroummodosimplificadodecompartilhamentodearquivos,o
"simple sharing", que visa imitar o modo de acesso do Windows 95/98, onde os
compartilhamentos so pblicos e voc apenas define se eles so apenas leitura ou leitura e
escrita.

Na verdade, o Windows XP usa o controle de acesso com base no usurio, assim como o
Samba 3, mas, por baixo dos panos, todos os acessos passam a ser mapeados para a conta
"guest" (ativa por padro), o que permite que usurios remotos sem login vlido acessem os
compartilhamentosdiretamente.Esterecursotambmchamadode"forceguest".

Naturalmente,podemosfazeromesmonoSamba.Paraisso,adicioneaslinhasabaixodentro
daseo[global]dosmb.conf:

maptoguest=baduser
guestaccount=guest

Aprimeiraopofazcomquesemprequeumclienteespecificarumusurioinvlidoaotentar
acessar o servidor, o servidor mapeie a requisio para o login especificado na opo "guest
account",queusadaparaacessarocompartilhamento.Nesteexemplo,qualquerusuriono
autenticado passaria a usar a conta "guest", que deve ter sido previamente cadastrada no
servidor. Voc pode tambm usar qualquer outra conta vlida, como em "guest account =
maria".

Umaopomenosusadaa"maptoguest=badpassword".Elasediferenciada"mapto
guest = bad user" pois permite o acesso apenas caso o usurio especifique um login vlido,
mas erre apenas a senha. O principal motivo dela no ser muito usada que ela confunde o
usurio, j que ele ou vai achar que est realmente logado no servidor (quando na verdade
estapenasacessandodeformalimitadaatravsdacontaguest)ouvaipassaraacharqueo
servidoraceitaqualquersenha.

Para que os usurios noautenticados possam acessar os compartilhamentos, voc deve


explicitamente autorizar o acesso, adicionando a opo "guest ok = yes" na configurao,
comoem:

[global]
netbiosname=Sparta
workgroup=Grupo
maptoguest=baduser
guestaccount=guest

[publico]
path=/mnt/sda2/publico
writable=yes
guestok=yes

Note que no exemplo usei a opo "writable = yes". Entretanto, para que os usurios no
autenticadospossamefetivamenteescrevernapasta,necessrioverificarseaspermisses
de acesso da pasta permitem que a conta especificada ("guest" no exemplo) altere os
arquivos. C omo disse anteriormente, o Samba est subordinado s permisses de acesso do
sistema.

Outraopocomumemcompartilhamentospblicosa"guestonly=yes" (usada no lugar


da "guest ok = yes", na seo [global]). Ela simula o "simple sharing" do Windows XP,
mapeando qualquer acesso para a conta guest, sem sequer abrir o prompt de login para o
cliente.

Vamosentoamaisumexemplodeconfiguraodosmb.conf,destavezusandoacontaguest
para criar um servidor de arquivos pblico. Ele possui duas parties de arquivos (montadas
naspastas"/mnt/hda2e"/mnt/sda1")queficamdisponveisatodososusuriosdarede:

[global]
netbiosname=Plutus
serverstring=Servidorpblico
workgroup=Grupo
localmaster=yes
oslevel=100
http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina5.html 1/4
201761 AcontaguestSamba,parte2:ConfiguraoavanadadoSamba
oslevel=100
preferredmaster=yes
winssupport=yes
maptoguest=baduser
guestaccount=gdh

[arquivos]
path=/mnt/hda2
writable=yes
guestok=yes

[backups]
path=/mnt/sda1
writable=yes
guestok=yes

Estaconfiguraobastantesimpleseaprovadefalhas.Oservidorvaiassumirafunode
master browser, se responsabilizando pela navegao dos clientes e vai mapear qualquer
acessoparaaconta"gdh"usadanaopo"guestaccount",permitindoquequalquerumpossa
leregravararquivosnosdoiscompartilhamentos.

Asduasprincipaisobservaessoqueousurio"gdh"deveserumusuriorealdosistema,
cadastradonoservidorSamba,equeeledeveserodonodasduaspastascompartilhadas,de
forma que no tenha problemas para acessar seu contedo. Isso pode ser feito usando os 4
comandosaseguir:

#addusergdh
<senha>
#smbpasswdagdh
<mesmasenha>
#chownRgdh:gdh/mnt/hda2
#chownRgdh:gdh/mnt/sda1

Essa configurao ideal para pequenos servidores de rede local, que devem apenas
disponibilizararquivosnarede,semmuitasegurana.Elasimilaraoexemplodeconfigurao
paraumservidordearquivospblicoqueinclunolivroRedes,GuiaPrtico.
201761 LixeiranoSambaSamba,parte2:ConfiguraoavanadadoSamba

Samba, parte 2: Configurao


avanada do Samba
C arlosE.Morim otocriou4/de z/2007 s10h34 11

ANTERIOR:ACONTAGUEST

LixeiranoSamba
PRXIMO:AUDITANDOOSACESSOS

LixeiranoSamba
Em qualquer servidor de arquivos, a principal prioridade assegurar a integridade e a
seguranadosdados.Entretanto,pormaisestvelquesejaaredeepormaisrobustoqueseja
o servidor, o elo mais fraco da cadeia acaba sendo sempre o usurio. De nada adianta um
servidorperfeitamenteestvelseeledeletaumarquivoimportantesemquerer.

Pensandonisso,oSambaofereceaopodeusarumalixeira,quepodelhepouparmuitador
decabeaemdiversassituaes.Issofeitoatravsdaopo"vfs object = recycle", que
criaumalixeiradentrodecadapastacompartilhada,quepassaaarmazenartodososarquivos
deletados. Isso previne a remoo acidental de arquivos, j que o usurio passa a precisar
deletaroarquivoeemseguidalimparocontedodalixeirapararealmenteremovlo,oque
ocomportamentoesperadopormuitos.

Por padro, os arquivos deletados vo para a pasta ".recycle" (dentro do compartilhamento),


masonomepodeseralteradoatravsdaopo"recycle:repository=lixeira"(ondeo"lixeira"
o nome desejado, que pode ser qualquer um). Quando uma pasta deletada, o padro
simplesmentemisturartodososarquivosnodiretrioraizdalixeira,masissopodeserevitado
adicionando a opo "recycle:keeptree = yes". Aqui temos mais um exemplo de
compartilhamento,incluindoastrsopes:

[projetos]
path=/mnt/sda2/projetos
writable=yes
validusers=+apolo,isac
vfsobject=recycle
recycle:repository=lixeira
recycle:keeptree=yes

Outraopotila"recycle:versions",quefazcomquealixeiramantenhadiferentesverses
domesmoarquivo,emvezdemanterapenasaltimaverso.Osarquivosrepetidospassam
entoaserrenomeadospara"C opy#1ofSamba.sxw","C opy#2ofSamba.sxw"eassimpor
diante.

recycle:versions=yes

C omisso,vocpassaadormirumpoucomaistranquiloanoiteesesalva(namaiorpartedos
casos)deprecisarrecuperararquivosacidentalmentedeletadosapartirdebackups.preciso
apenas se lembrar de verificar o contedo das lixeiras de vez em quando e limpar as pastas
quando elas comearem a consumir muito espao em disco. Voc pode inclusive deletar a
pasta da lixeira inteira, pois ela recriada automaticamente quando o prximo arquivo for
deletado.

Umaopoparareduziroproblemadoespaodesperdiadocentralizartodasaslixeirasem
umanicapasta.IssopermiteinclusivequevocutilizeumapartioouumHDseparadopara
armazenarosarquivosdalixeira,semcorreroriscodeelacresceratocupartodooespao

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina6.html 1/5
201761 LixeiranoSambaSamba,parte2:ConfiguraoavanadadoSamba
disponvel na partio principal. Para isso, usamos a opo "recycle:repository", seguida da
pastaaserutilizada(quedevesercriadapreviamente),comoem:

recycle:repository=/var/samba/trash/

C omo adicionamos o caminho completo (em vez de usar "recycle:repository = lixeira", como
no exemplo anterior), a opo pode tanto ser adicionada individualmente em cada
compartilhamento quanto ser especificada apenas uma vez na seo [global], o que faz com
que a lixeira passe a ser automaticamente usada para arquivos deletados em todos os
compartilhamentosdoservidor.

C entralizar todos os arquivos em uma nica pasta criaria uma grande confuso, j que ela
misturariaarquivosdeletadosportodososusurios.Umasoluoadicionaravarivel"%U",
que faz com que os arquivos sejam organizados em vrias subpastas, separados por usurio
(as subpastas usadas por cada usurio so criadas automaticamente conforme necessrio).
Nessecasoaopofica:

recycle:repository=/var/samba/trash/%U

Oproblemaemusaressaopoqueosusuriosdeixamdeveralixeira,jqueelapassaa
ficar em uma pasta separada. Uma soluo para o problema criar um novo
compartilhamento, que permite que cada usurio veja sua lixeira particular. Para isso, iremos
novamenteusaravarivel"%U":

[lixeira]
path=/var/samba/trash/%U
writable=yes

Useiaopo"writable=yes"parapermitirqueoprpriousuriopossalimparalixeiraquando
quiser,masissoopcional.Valelembrarqueparaqueousurioconsigalimparosarquivosda
lixeira, necessrio que ele tenha permisso de escrita para a pasta "/var/samba/trash/".
Nessecaso,voctemaopodesimplesmenteabriraspermissesdapasta(chmod777),ou
ajustarmanualmenteaspermissesdasubpastadecadausurio,comoem:

#chownRjoao:joao/var/samba/trash/joao

Maisumamedidatilparaevitardesperdciodeespaobloquearagravaodearquivosde
backup e de arquivos temporrios na lixeira, j que eles costumam ser numerosos e
raramente so importantes. saudvel bloquear tambm arquivos .iso (que so tipicamente
muito grandes), de forma que eles sejam tambm deletados diretamente. As extenses de
arquivos so especificadas atravs da opo "recycle:exclude" e nomes de pasta atravs da
opo"recycle:exclude_dir",comoem:

recycle:exclude=*.tmp,*.log,*.obj,~*.*,*.bak,*.iso
recycle:exclude_dir=tmp,cache

Assim como a "recycle:repository", as demais opes da lixeira podem tanto serem


especificadasindividualmentedentrodecadacompartilhamentoquantodiretamentedentroda
seo [global], o que naturalmente o mais simples caso voc deseje ativla para todos os
compartilhamentos. O default do Samba 3 manter todas as opes desativadas, de forma
quealixeirasusadaquandoasopessoespecificadas.

Um exemplo de configurao, com a lixeira ativa dentro da seo [global], dois


compartilhamentos de arquivos e mais o compartilhamento que d acesso pasta central da
lixeiraporpartedosusuriosseria:

[global]
netbiosname=Phanteon
serverstring=Servidorcomlixeira
workgroup=Grupo
localmaster=yes
oslevel=100
preferredmaster=yes
winssupport=yes

vfsobjects=recycle
recycle:keeptree=yes
recycle:versions=yes
recycle:repository=/var/samba/trash/%U
recycle:exclude=*.tmp,*.log,*.obj,~*.*,*.bak,*.iso
recycle:exclude_dir=tmp,cache

[engenharia]
path=/mnt/sda2/engenharia
writable=yes
validusers=+engenheiros

[gerencia]
path=/mnt/gerencia
writable=yes
validusers=paulo,rebeca
hostsallow=micro3,micro4
browseable=no

[lixeira]
path=/var/samba/trash/%U
writable=yes

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina6.html 2/5
201761 AuditandoosacessosSamba,parte2:ConfiguraoavanadadoSamba

Samba, parte 2: Configurao


avanada do Samba
C arlosE.Morim otocriou4/de z/2007 s10h34 11

ANTERIOR:LIXEIRANOSAMBA

Auditandoosacessos
PRXIMO:BACKENDS:SMBPASSWDOUTDBSAM

Auditandoosacessos
OSambaoferecetambmumrecursodegeraodelog.Elepodeserativadoadicionandoas
opesabaixonaseo[global]dosmb.conf:

loglevel=1
logfile=/var/log/samba.log
maxlogsize=1000

A opo "log level" indica o nvel das mensagens (de 0 a 10), sendo que o nvel 0 mostra
apenas mensagens crticas, o nvel 1 mostra alguns detalhes sobre os acessos e os demais
mostramdiversosnveisdeinformaesdedebug,teisadesenvolvedores.Aopo"logfile"
indicaoarquivoondeelesergeradoea"maxlogsize"indicaotamanhomximo,emkbytes.

ApartirdoSamba3.04foiincludoummdulodeauditoria,quepermitelogarosacessoseas
modificaes feitas de uma forma muito mais completa que o log tradicional. Isso feito
atravs do mdulo "full_audit", que (do ponto de vista tcnico) funciona de forma similar ao
mdulo"recycle"usadopelalixeira.

Oprimeiropassoativaromdulo,oquefeitoatravsdalinhaabaixo:

vfsobjects=full_audit

O prximo passo definir quais operaes devem ser logadas atravs da opo
"full_audit:success",comoem:

full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir,


chmod,chown
(asopesformamumanicalinha)

Asopesqueinclunoexemplosoopen(lerumarquivo),opendir(verosarquivosdentrode
uma pasta), write (alterar um arquivo), unlink (deletar um arquivo), rename (renomear um
arquivo), mkdir (criar um diretrio), rmdir (remover um diretrio), chmod (alterar as
permissesdeacessodeumarquivo)echown(mudarodonodeumarquivo).

Voc pode remover algumas destas opes, deixando apenas as opes desejadas, ou ver
umalistacompletadasopesquepodemserincludasnomanualdovfs_full_audit,disponvel
no:
http://samba.org/samba/docs/man/manpages3/vfs_full_audit.8.html

C ontinuandoaconfigurao,especificamosasinformaesquedesejamosquesejamincludas
no log, usando a opo "full_audit:prefix". Aqui podemos utilizar as variveis que mostrei no
tpico sobre o compartilhamento [homes], como a "%u" (o nome do usurio), "%I" (o IP da
mquina)e"%S"(onomedocompartilhamentoondefoifeitooacessoouaalterao).No
necessrio incluir a varivel referente ao nome da mquina, pois o nome includo
automaticamente:

full_audit:prefix=%u|%I|%S

Por padro, o mdulo loga no apenas os acessos e modificaes, mas tambm um grande
volume de mensagens de alerta e erros gerados durante a operao. A opo
"full_audit:failure = none" evita que estas mensagens sejam logadas, fazendo com que o log
fiquemuitomaislimpoesejamaisfcilencontrarasopesquerealmenteinteressam:

full_audit:failure=none

C oncluindo,especificamosonveldosalertas,entreossuportadospelosyslog,comoem:

full_audit:facility=local5
full_audit:priority=notice

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina7.html 1/5
201761 AuditandoosacessosSamba,parte2:ConfiguraoavanadadoSamba

Juntandotudo,temos:

vfsobjects=full_audit
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir,
chmod,chown
full_audit:prefix=%u|%I|%S
full_audit:failure=none
full_audit:facility=local5
full_audit:priority=notice

Esta configurao pode ser tanto includa dentro da seo [global] (de forma que o log inclua
os acessos e as alteraes feitas em todos os compartilhamentos) quanto ser includa apenas
naconfiguraodeumcompartilhamentoespecfico.

C om isso, o Samba vai passar a gerar os eventos referentes aos acessos. Falta agora
configurarosysklogd(oservioresponsvelpelageraodoslogsdosistema),paralogaros
eventos, gerando o arquivo de log que poder ser consultado. Para isso, abra o arquivo
"/etc/syslog.conf"eadicionealinhaabaixo:

local5.notice/var/log/sambafull_audit.log

Notequeo"local5.notice"correspondeaosvaloresinformadosnasopes"full_audit:facility"e
"full_audit:priority", enquanto o "/var/log/sambafull_audit.log" o arquivo de log que ser
gerado.

Depois de concluda a configurao, reinicie os servios e o log passar a ser gerado


imediatamente:

#/etc/init.d/sambarestart
#/etc/init.d/sysklogdrestart

Dentrodoarquivo,vocverentradascontendoadataehora,onomedamquina,ousurio,
oIPdamquina,onomedocompartilhamento,aoperaorealizadaeonomedoarquivoou
pastaondeelafoirealizada,comoem:

Nov1815:21:15m5smbd_audit:joao|192.168.1.23|arquivos|opendir|ok|.
Nov 18 15:21:29 m5 smbd_audit:
joao|192.168.1.23|arquivos|open|ok|r|addr.txt
Nov1815:21:34m5smbd_audit:joao|192.168.1.23|arquivos|mkdir|ok|trabalho
Nov 18 15:21:36 m5 smbd_audit:
joao|192.168.1.23|arquivos|opendir|ok|trabalho
Nov 18 15:21:43 m5 smbd_audit:
joao|192.168.1.23|arquivos|open|ok|w|trabalho/Samba.sxw
Nov 18 15:21:44 m5 smbd_audit:
joao|192.168.1.23|arquivos|open|ok|w|trabalho/foto.jpg

O log conter entradas referentes a todos os usurios e mquinas, mas fcil ver apenas as
entradas referentes a um determinado usurio, compartilhamento, endereo IP ou outro
parmetro qualquer ao listar o arquivo pelo terminal usando o grep, que permite mostrar
apenasaslinhascontendodeterminadostrechosdetexto,comoem:

#cat/var/log/sambafull_audit.log|grep"joao|192.168.1.23"

(mostraosacessosprovenientesdousuriojoao,feitosapartirdoendereo192.168.1.23)

#cat/var/log/sambafull_audit.log|grep"|arquivos|"

(acessosfeitosaocompartilhamento"arquivos",porpartedequalquerusurio)

... e assim por diante. Voc pode tambm direcionar a sada para um novo arquivo (ao invs
detentarllapeloprprioterminal),comoem:

#cat/var/log/sambafull_audit.log|grep"|arquivos|">arquivos.log

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina7.html 2/5
201761 Backends:smbpasswdoutdbsamSamba,parte2:ConfiguraoavanadadoSamba

Samba, parte 2: Configurao


avanada do Samba
C arlosE.Morim otocriou4/de z/2007 s10h34 11

ANTERIOR:AUDITANDOOSACESSOS

Backends:smbpasswdoutdbsam

Backends:smbpasswdoutdbsam
AsprimeirasversesdoSambasuportavamapenasousodesenhasdetextopuro,queeram
transmitidasdeformanoencriptadaatravsdarede.Aindapossvelreverteraestesistema
primitivo nas verses recentes do Samba usando a opo "encrypt passwords = no" no
smb.conf, mas, alm de no trazer nenhuma vantagem, isso quebra a compatibilidade com
todasasversesrecentesdoWindows,quenoaceitamoenviodesenhasemtextopuro.

Durante a evoluo do Samba, foram criados diversos backends, que permitem armazenar
senhas encriptadas e outras informaes referentes aos usurios. Voc pode escolher qual
backend usar atravs da opo "passdb backend" do smb.conf. Vamos entender como eles
funcionam.

O smbpasswd o backend mais simples. Nele, as senhas so salvas no arquivo


"/etc/samba/smbpasswd"esotransmitidasdeformaencriptadaatravsdarede,comsuporte
ao sistema NTLM, usado pelas verses contemporneas do Windows. A vantagem do
smbpasswd que ele um sistema bastante simples. Embora encriptadas, as senhas so
armazenadasemumarquivodetexto,comumacontaporlinha.

SevocquerapenasconfigurarumservidorSambaparacompartilhararquivoseimpressoras
com a rede local, sem uslo como PDC , ento o smbpasswd funciona bem. Ele usado por
padronoSamba3,deformaqueseoarquivosmb.confdoseuservidornocontmalinha
"passdbbackend="(comonosexemplosquevimosataqui),vocestusandojustamenteo
smbpasswd.

Emseguidatemosotdbsam,queusaumabasededadosmuitomaisrobusta,armazenadano
arquivo "/var/lib/samba/passdb.tdb" ( justamente este arquivo que o script executado
duranteainstalaodopacote"samba"noDebianperguntasedevesercriado).

O tdbsam oferece duas vantagens sobre o smbpasswd: oferece um melhor desempenho em


servidores com um grande nmero de usurios cadastrados e oferece suporte ao
armazenamentodoscontrolesSAMestendidosusadospelasversesserverdoWindows.Ouso
dotdbsamfortementerecomendvelcasoseuservidortenhamaisdoquealgumasdezenas
de usurios cadastrados ou caso voc pretenda usar seu servidor Samba como PDC da rede
(veja mais detalhes a seguir). Ele tambm um prrequisito caso voc precise migrar um
domnioNTjexistenteparaoservidorSamba.

Ao usar uma verso recente do Samba, ativar o uso do tbdsam bastante simples, basta
incluiralinha"passdbbackend=tdbsam"naseo[global]dosmb.conf,comoem:

[global]
netbiosname=Sparta
workgroup=Grupo
serverstring=Servidor
encryptpasswords=true
winssupport=yes
preferredmaster=yes
oslevel=100
enableprivileges=yes
passdbbackend=tdbsam

Emboraoarquivodesenhassejadiferente,ocomandoparacadastrarosusuriosnoSamba
aousarotdbsamcontinuasendoomesmo:

#smbpasswdausuario

Isso acontece porque, ao ser executado, o smbpasswd verifica a configurao presente no


smb.conf e assim realiza as operaes necessrias para cadastrar os usurios no backend
utilizado.

A principal dica que, ao utilizar o tdbsam, voc deve adicionar a linha "passdb backend =
tdbsam"nosmb.conflogonoinciodaconfigurao,antesdecomearacadastrarosusurios
no servidor, caso contrrio, o smbpasswd cadastrar os usurios no smbpasswd e voc
precisar cadastrlos novamente para atualizar a base do tdbsam mais tarde. Em muitos
casos, um script includo na distribuio pode se encarregar de fazer a converso
automaticamente,masmelhornocontarcomisso.

Para verificar se os usurios esto cadastrados na base de dados do tdbsam, use o comando
"pdbeditLw"(comoroot).Eledeveretornarumalistacontendotodososusurioscadastrados,

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina8.html 1/5
201761 Backends:smbpasswdoutdbsamSamba,parte2:ConfiguraoavanadadoSamba
comoem:

#pdbeditLw

gdh:1006:5567A38FC604AC6B90213960766D16B5:15350B7F4983CB5EAC073A892B423E8E:
[U]:LCT471F5AF2:
root:0:E412294BCF24C19D433AC183134CC0F3:121797EEFB127E62222B23F77ED087BE:[U
]:LCT464460FF:
manuel:1005:5567A38FC604AC63902139606B6D16B5:15350B7F4983CB5EAC073A892C687E8E:
[U]:LCT4710F13C:
hp$:1007:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:0D80C51183ED74320799B5BEDDCBE388:
[W]:LCT47421493:
m5$:1009:B233C3E987D08D924405A9EF76E52792:65DD4A9908A35667D79B599F94691E34:
[W]:LCT4742D747:

Emseguidatemosomysqlsameoldapsam,ondeascontasesenhassoarmazenadasem,
respectivamente,umservidorMySQLeumservidorLDAP.OusodoMySQLemconjuntocomo
Sambanomuitocomum,masoLDAPvemcrescendobastanteemgrandesredes.

A grande vantagem que o banco de dados pode ser acessado por vrios servidores, sem
necessidadedereplicaroarquivodesenhasmanualmente(usandoorsync,porexemplo).Isso
muitotilnocasoderedesmuitograndesondeaautenticaodosusuriosdivididaentre
vrios servidores. Nesta configurao, o PDC divide a carga de trabalho com um conjunto de
BDC s (backup domain controllers), que podem ser tanto outros servidores Samba quanto
servidores Windows. Os BDC s so subordinados ao servidor PDC , mas todos tem acesso
mesmabasededadoscomosusurios,armazenadanoservidorLDAP,oqueevitaproblemas
desincronismoentreeles.

De uma forma geral, um nico PDC usando o tdbsam como backend atende bem a at 250
clientes. Este limite no relacionado ao uso do tdbsam, mas sim a questes prticas
relacionadasaodesempenhodarede.Elepodesermaioroumenornaprtica,deacordocom
avelocidadedarede(100ou1000megabits),ohardwaredoservidoreacargasobrearede.
Apartirda,passaafazersentidomigrarparaumbancodedadosLDAPepassaraadicionar
servidoresBDC secundrios.

C onfiraaterceiraparteem:http://www.hardware.com.br/tutoriais/sambapdc/

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina8.html 2/5
TIRETODOO
Samba, parte 2: Configurao PROVEITODEZIMBRA
avanada do Samba BACKUPEMTEMPOREAL,
SINCRONIZAOMVEL,

Aseo[global]
Todasasopescolocadasdentrodaseoreferenteaocompartilhamentovalemapenaspara
ele, o que permite que voc crie diversos compartilhamentos diferentes e use um conjunto
prpriodepermissesparacadaum.Estasmesmasopes,juntocomumconjuntoadicional
podemserespecificadasdeformageraldentrodaseo[global]dosmb.conf.

Nosexemplosanteriores,especificamosapenasonomedoservidoreogrupodetrabalhona
seo [global]. Isto suficiente para o servidor participar da rede e compartilhar arquivos,
mas,naturalmente,existemmuitasoutrasopesquepodemserusadas.

Em primeiro lugar, temos o nvel de segurana do servidor, definido atravs da opo


"security". O default no Samba 3 usar o controle de acesso baseado em usurio, que o
mesmomododeacessousadopelasversesdomsticasdoWindows2000,XPeVista.Neste
modo, voc cadastra os logins e senhas no servidor, define as permisses de acesso e o
servidor checa as credenciais dos clientes antes de autorizar o acesso, a configurao que
vimosataqui.Estemodoativadoadicionandoaopo"security=user"naseo[global],
masnonecessriouslanoSamba3,pois,comodisse,elausadaporpadro:

security=user

Em seguida, temos o modo "security = domain". Ao contrrio do que o nome pode sugerir
primeiravista,estemodonodestinadoafazercomqueoSambaatuecomoumcontrolador
dedomnio.Pelocontrrio,aoconfigurarumservidorSambacomoPDC ,voccontinuausando
a opo "security = user", da mesma forma que faria ao usar um servidor em modo stand
alone. A opo "security = domain" usada quando voc quer que um servidor Samba
participedodomniocomocliente,autenticandoseemumservidorPDC jexistente(quepode
tantoseroutroservidorSamba,quantoserumservidorWindows).

Existem ainda os modos "security = share" e "security = server", que imitam o sistema de
acesso utilizado por estaes Windows 95/98. Estes dois modos so obsoletos e devem ser
removidos em futuras verses do Samba. Antigamente, o modo "security = share" era usado
em casos onde voc queria disponibilizar compartilhamentos pblicos na rede, sem muita
segurana, mas hoje em dia isso pode ser feito usando a conta guest (como veremos em
detalhesmaisadiante).Omodo"security=server"descendedapocaemqueoSambaainda
no era capaz de atuar como PDC este modo permitia que ele atuasse como um proxy de
autenticao,repassandoasrequisiesparaoservidordeautenticaoprincipal.Atualmente
estemodonomaisusado.

Outra opo usada por padro no Samba 3 a "encrypt passwords = yes", de forma que
tambmnonecessrioespecificlamanualmentenoarquivo.Entretanto,saudvelinclu
la em modelos e exemplos de configurao pois pode acontecer de algum tentar usar o
modelonoSamba2,ondeodefaulteraqueelaficassedesativada.

encryptpasswords=yes

muito comum que seja includa tambm a opo "invalid users = root", uma medida de
seguranaparaevitarqueacontaderootsejausadaaoacessaroservidor.Algicaquea
contaderootanicacontapresenteemqualquersistemaLinux,deformaquealgumque
decidisse usar um ataque de fora bruta para tentar obter acesso ao servidor, testando todas
assenhaspossveis,comeariajustamentepelacontaderoot.

Entretanto,acontaderootnecessriaparadaruploaddedriversdeimpressoeparalogar
osclientesaousaroservidorSambacomoPDC ,situaesondealinha"invalidusers=root"
devesercomentadaouremovida.

C ontinuando, as opes definidas dentro da seo [global] valem para todos os


compartilhamentos do servidor, diferente das opes colocadas dentro da seo referente a
cadaum.Porexemplo,aousar:

[global]
netbiosname=Servidor
workgroup=Grupo
hostsallow=192.168.1.

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina3.html 1/7
201761 Aseo[global]Samba,parte2:ConfiguraoavanadadoSamba
...apenasasmquinasdentrodafaixadeendereosespecificadasteroacessoaoservidor,o
que seria interessante do ponto de vista da segurana, j que de qualquer forma o servidor
deveseracessadoapenasporclientesdaredelocal.

Omaiorproblemaqueaopo"hostsallow"usadanaseo[global]temprecednciasobre
qualqueropo"hostsdeny"usadadentrodoscompartilhamentos,oquepodecriarproblemas
caso voc queira restringir o acesso de alguma mquina da rede local a um determinado
compartilhamento.

Porexemplo,aousar:

[global]
netbiosname=Servidor
workgroup=Grupo
hostsallow=192.168.1.

[share]
path=/mnt/sda2/shared
hostsdeny=192.168.1.2

... a mquina "192.168.1.2" continuaria tendo acesso ao compartilhamento [share], pois o


acesso autorizado pela opo "hosts allow = 192.168.1." usada na seo [global]. Nesse
caso, o melhor seria remover a linha "hosts allow = 192.168.1." da seo [global] e deixar
apenasaopo"hostsdeny=192.168.1.2"naseo[share]:

[global]
netbiosname=Servidor
workgroup=Grupo

[share]
path=/mnt/sda2/shared
hostsdeny=192.168.1.2

Emcasodeconflitodiretoentreumaregradefinidanaseo[global]eoutradefinidaemum
dos compartilhamentos, a regra definida na seo [global] tem precedncia. Por exemplo, ao
usar:

[global]
netbiosname=Servidor
workgroup=Grupo
hostsdeny=192.168.1.3

[share]
path=/mnt/sda2/shared
hostsallow=192.168.1.3

... a mquina "192.168.1.3" continuar sem acesso ao compartilhamento "share" (ou a


qualqueroutrorecursodoservidor),jquevalearegradefinidanaseo[global].Enquantoa
linha"hostsdeny=192.168.1.3"noforremovida,amquinanoteracessoanenhumdos
compartilhamentos,noimportaoquedigamasdemaislinhasdoarquivo.

C ontinuando,umproblemacomumenfrentadoaoadministrarumaredemistasoosusurios
escreverem a primeira letra do login em maisculo, como em "Joao" no lugar de "joao". No
Windows isso no um problema, j que o sistema case insensitive, mas no Linux faz com
queosistemarecuseologin.UmaformadeevitarissonoSambausaraopo"username
level",comoem:

usernamelevel=2

Esta opo faz com que o Samba verifique vrias combinaes de maisculas e minsculas
casoologinsejarecusadopelosistema.Onmeroindicaovolumedevariaes,quepodeser
qualquer nmero inteiro. Ao usar o valor "2", o Samba verifica at dois nveis, incluindo
variaes como JOao, jOAo, Joao, jOaO e assim por diante. Usar um nmero maior pode
retardar a autenticao, j que o Samba precisar testar muitas combinaes, por isso so
geralmenteusadososvalores"1"ou"2".

Outrapeculiaridadedignadenotaaquestodosnomesdearquivos.NoWindows,osnomes
de arquivos so salvos da forma como digitados pelo usurio, preservando os caracteres
maisculoseminsculos.Entretanto,osistemacaseinsensitive,deformaqueosistemano
diferenciaumarquivochamado"Trabalho.txt"deoutrochamado"trabalho.txt".

EmboraoLinuxsejacasesensitive,oSambatentaemularocomportamentodeumamquina
Windowsaolocalizararquivos.Seoclientepedeoarquivo"Trabalho.txt",quandonaverdadeo
arquivo armazenado na pasta se chama "trabaLho.txt" o Samba vai acabar fornecendo o
arquivo correto para o cliente, pois o encontrar depois de testar diversas combinaes de
maisculaseminsculas.

NoSamba3esterecursofuncionamuitobem,mastemadesvantagemdeconsumirumacerta
quantidade de memria do servidor. Em um pequeno servidor de rede local, isso no faz
diferena, mas em um servidor que atende um grande nmero de requisies, a diferena
podesetornarconsidervel.

VocpodesimplificarascoisasorientandooSambaasalvartodososarquivosemminsculas.
Paraisso,adicioneaslinhas:

preservecase=no
defaultcase=lower

Nocasodeservidorescomduasoumaisinterfacesderede,sobretudonocasodeservidores
conectadossimultaneamenteinterneteredelocal,vocpodeespecificarqualinterfaceser
usadapeloSambaatravsdaopo"interfaces",quedevesercombinadacomaopo"bind

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina3.html 2/7
201761 Aseo[global]Samba,parte2:ConfiguraoavanadadoSamba
interfaces only = yes". Para que o servidor escute apenas a interface eth0, ignorando
tentativasdeconexoemoutrasinterfaces,vocusaria:

interfaces=eth0
bindinterfacesonly=yes

Por default, o Samba escuta em todas as interfaces, o que (se no houver nenhum firewall
ativo) pode expor seus compartilhamentos para a Internet caso voc ative o Samba em uma
mquina conectada diretamente internet, como no caso de um servidor que compartilha a
conexo.recomendvelusarsempreestasduasopes,comoumaformadegarantirqueo
Sambaficardisponvelapenasnainterfacedesejada.

Outraopointeressantea"netbiosaliases",quepermitecriar"apelidos"paraoservidor,
de modo de que ele possa ser acessado por mais de um nome. Usando um alias, o servidor
realmente aparece duas ou mais vezes no ambiente de rede, como se existissem vrias
mquinas. Geralmente, isso acaba confundindo mais do que ajudando, mas pode ser til em
algumas situaes, quando, por exemplo, um servidor desativado e os compartilhamentos
so movidos para outro. O novo servidor pode responder pelo nome do servidor antigo,
permitindo que os desavisados continuem acessando os compartilhamentos atravs do
endereo anterior. Para usla, basta adicionar a opo, seguida pelos apelidos desejados,
comoem:

[global]
netbiosname=Servidor
netbiosaliases=athenas,sparta
workgroup=Grupo

NotpicosobreoSwatfaleisobreasopes"LocalMaster","OSLevel"e"PreferredMaster",
quedefinemseoservidorSambadeveparticipardaseleiesparaMasterBrowserecomqual
nveldecredencial.ParaqueoservidorparticipecomOSLevel100,vocadicionariaaslinhas:

localmaster=yes
oslevel=100
preferredmaster=yes

Um segundo servidor Samba na rede poderia participar com uma credencial mais baixa, de
forma a assumir o cargo apenas caso o servidor principal esteja desconectado da rede. Para
isso,bastausarumvalormaisbaixonaopoOSLevel,comoem:

localmaster=yes
oslevel=90
preferredmaster=no

O valor da opo OS Level absoluto, no se trata de um sorteio. Um servidor configurado


comovalor"100"ganhasempredeumcomovalor"99",porexemplo.

Sevocomitirastrslinhas,oservidorsimplesmenteutilizaosvaloresdefault(localmaster=
yes, os level = 20), que fazem com que ele participe das eleies, mas utilize credenciais
baixas.

A opo "wins support = yes" faz com que o servidor Samba passe a trabalhar como um
servidor WINS (Windows Internetworking Name Server) na rede. O WINS um protocolo
auxiliar dentro das redes Microsoft, responsvel pela navegao na rede e listagem dos
compartilhamentoseoutrosrecursosdisponveis,deformasimilaraumservidorDNS.

OusodoWINSnoobrigatriosuaredevaimuitoprovavelmentefuncionarmuitobemsem
ele.Entretanto,semumservidorWINSosclientespassamausarpacotesdebroadcastparaa
navegao (a menos que voc utilize um domnio), o que aumenta o trfego da rede e torna
todooprocessomaispassveldefalhas.

Outralimitaoimportantequeospacotesdebroadcastsodescartadospelosroteadores,o
que faz com que eles (os pacotes de broadcast) no sejam transmitidos de um segmento a
outro da rede caso ela esteja dividida em vrios segmentos, interligados atravs de
roteadores.OmesmoacontececasovoctenhaduasredesligadasatravsdeumaVPN,onde
o trfego seja roteado. Em ambos os casos, os pacotes de broadcast so descartados pelos
roteadores,fazendocomqueosmicrosemumsegmentonoenxerguemosmicrosdooutroe
viceversa.

A soluo em ambos os casos implantar um servidor WINS na rede. C om isso, os clientes


passam a consultar o servidor ao invs de mandar pacotes de broadcast, fazendo com que a
navegao funcione mesmo ao utilizar vrios segmentos de rede. Para isso, basta incluir a
opodentrodaseo[global]dosmb.conf:

winssupport=yes

O prximo passo configurar os clientes da rede para utilizarem o servidor. A opo fica
escondida nas propriedades da conexo de rede, no Protocolo TC P/IP > Propriedades >
Avanado>WINS,ondevocdeveadicionaroendereoIPdoservidor:

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina3.html 3/7
201761 Aseo[global]Samba,parte2:ConfiguraoavanadadoSamba

AconfiguraodoservidorWINSpodesertambmenviadaautomaticamenteparaosclientes.
Para isso, necessrio incluir a opo "netbiosnameservers" na configurao do servidor
DHC P (no arquivo "/etc/dhcp3/dhcpd.conf", ou "/etc/dhcpd.conf"), especificando o nome do
servidor,comoem:

optionnetbiosnameservers192.168.1.254

Estalinhacolocadadentrodaseocomaconfiguraodarede,comonesseexemplo:

subnet192.168.1.0netmask255.255.255.0{
range192.168.1.100192.168.1.199
optionrouters192.168.1.1
optiondomainnameservers192.168.1.1
optionnetbiosnameservers192.168.1.254
optionbroadcastaddress192.168.1.255
}

NocasodeoutrosmicrosLinuxrodandooSambaqueforemserconfiguradoscomoclientesdo
servidor principal, a configurao feita adicionando a opo "wins server = servidor"
(tambm na seo [global] do smb.conf), onde voc especifica o endereo IP do servidor
principal,comoem:

winsserver=192.168.1.254

Uma observao importante que as opes "wins support" e "wins server" so mutuamente
exclusivas.OuamquinaatuacomoservidorWINS,oucomocliente(nuncaasduascoisasao
mesmo tempo), de forma que voc no deve jamais combinar as duas opes dentro da
configurao.

Em verses antigas do Samba, combinar as duas opes na configurao simplesmente fazia


comqueoservidordeixassedefuncionar.Nasatuaisoresultadonochegaaserdramtico(o
servidorvaisimplesmenteignoraraopoqueforcolocadadepois),masmesmoassimeste
umerrogravedeconfiguraoquedeveserevitado.

Umexemplodeseo[global]usandoasopesquevimosataquiseria:

[global]
netbiosname=Athenas
serverstring=ServidorSamba
workgroup=Grupo
usernamelevel=1
preservecase=no
defaultcase=lower

interfaces=eth0
bindinterfacesonly=yes
localmaster=yes
oslevel=100
preferredmaster=yes
winssupport=yes

Esta configurao ativa o teste de variaes de maisculas e minsculas para os logins


recusados (apenas um nvel), faz com que todos os arquivos salvos nos compartilhamentos
sejam renomeados para caracteres minsculos, faz com que o servidor escute apenas a
interface eth0, que seja master browser da rede e que atue como servidor WINS. Este um
arquivodeconfiguraoperfeitamenteutilizvel,faltariaapenasadicionarasseesreferentes
aoscompartilhamentos.

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina3.html 4/7
Samba, parte 2: Configurao
avanada do Samba PARAZIMBRA

Ajustandoaspermissesdeacesso
C om esta configurao, os clientes conseguem visualizar os arquivos da pasta normalmente,
masaindanoconseguemgravarnosarquivos.Aotentarsalvaralgumacoisanapasta,voc
recebeumamensagemdeacessonegado:

Isso acontece por dois motivos. O primeiro que o default do Samba compartilhar com
permisso apenas para leitura. C omo no dissemos nada sobre as permisses de acesso do
compartilhamentonoarquivodeconfigurao,elefoicompartilhadousandoodefault.

Para que o compartilhamento fique disponvel com permisso de leitura e escrita, precisamos
adicionaraopo"writable=yes"dentrodaconfiguraodocompartilhamento,queficar:

[arquivos]
path=/mnt/arquivos
writable=yes
comment=Teste

Muitoprovavelmente,mesmodepoisdereiniciaroSambavoccontinuarrecebendoomesmo
erro ao tentar gravar os arquivos. Dessa vez, o Samba autoriza a gravao, mas ela ainda
podeserabortadaseaspermissesdapastanopermitiremqueousuriogravearquivos.Se
voccriouapasta"/mnt/arquivos"comoroot,entoodefaultqueapenaselepossagravar
arquivos na pasta. Para permitir que outros usurios possam gravar, necessrio abrir as
permissesdapasta.

Aestaaltura,aleidomnimoesforodiriaparavocusarum:

#chmod777/mnt/arquivos

Obviamente, isso permitiria que os usurios gravassem na pasta. O problema que as


permissesficariamescancaradas,apontodequalquerum,quetenhaacessoaoservidor(por
qualquermeio)possaalterarosarquivosdentrodapasta,oquenonadabomdopontode
vistadasegurana.

No tpico sobre o Swat, vimos como criar um grupo usando o usersadmin (systemconfig
users) e abrir as permisses da pasta apenas para os usurios que fazem parte dele. Vamos
veragoracomofazerissovialinhadecomando.

O primeiro passo criar um grupo para os usurios que podero fazer alteraes na pasta,
usando o comando "groupadd". Eu prefiro criar grupos com o mesmo nome do
compartilhamento,paraficarmaisfcildelembrar,masissoficaaseucritrio.

#groupaddarquivos

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 1/8
201761
Apartirda,vocpodeadicionarusuriosaogrupousandoocomando"adduser",nessecaso
especificandoousuriojcriadoeogrupoaoqualeleseradicionado,comoem:

#adduserjoaoarquivos
#addusermariaarquivos

Pararemoverusuriosdogrupo,vocusaocomando"deluser",comoem:

#deluserjoaoarquivos
#delusermariaarquivos

Depois de criar o grupo e adicionar os usurios a ele, falta apenas ajustar as permisses de
acessodapasta,deformaqueogrupotenhaacessocompleto,comoem:

#chgrparquivos/mnt/arquivos
#chmod775/mnt/arquivos

C om isso, trocamos o grupo dono da pasta e dizemos que tanto o dono quanto o grupo
possuem acesso completo. A partir desse ponto, o Samba autoriza o acesso para todos os
usurios cadastrados atravs do smbpasswd e o sistema autoriza a gravao para todos os
usuriosquefazempartedogrupo.

Sevocprecisarqueaalteraosejaaplicadadeformarecursiva,alterandoaspermissesde
todasassubpastasearquivos,adicioneaopo"R"nosdoiscomandos,comoem:

#chgrpRarquivos/mnt/arquivos
#chmodR775/mnt/arquivos

Almdeserviremparacontrolaraspermissesdeacessodosusuriosspastasdosistema,
os grupos podem ser usados para ajustar as permisses de acesso do Samba, de forma
bastantesimples.

Sevocquerqueocompartilhamentofiquedisponvelapenasparaosusuriosquecadastrou
no grupo "arquivos", adicione a opo "valid users = +arquivos" na seo referente ao
compartilhamento. O "+" indica que se trata de um grupo e no de um usurio isolado. O
Samba verifica ento quais usurios fazem parte do grupo e autoriza o acesso. A partir da,
quandovocquiserliberaroacessoparaumnovousurio,bastaadicionloaogrupo:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=+arquivos

Voc pode tambm especificar uma lista de usurios isolados, separandoos por vrgula, por
espao,oupelosdoiscombinados(oquepreferir),comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=joao,maria,jose

possvel tambm combinar as duas coisas, indicando um ou mais grupos e tambm alguns
usuriosavulsos,comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=+arquivos,jose,joaquim,+admin

Assim como na maioria das opes do Samba, a opo "valid users" exclusiva, ou seja, ao
dizerqueosusuriosdogrupoarquivosdevemteracesso,vocautomaticamenteexcluitodos
osoutros.Vocpodetambmfazerooposto,criandoumalistadeusuriosquenodevemter
acessoemantendooacessoparaosdemais.Nessecaso,vocusariaaopo"invalidusers",
comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
invalidusers=jose,joaquim

Nesse caso, todos os usurios cadastrados no Samba podem acessar, com exceo dos
usurios jose e joaquim. possvel ainda usar a opo "invalid users" para especificar
exceesaoespecificargruposusandoaopo"validusers",comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=+arquivos
invalidusers=joao

Nesse caso, todos os usurios dentro do grupo arquivos tero acesso, com exceo do joao.
Esta combinao pode ser usada em casos onde o grupo especificado tambm em outros

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 2/8
201761 AjustandoaspermissesdeacessoSamba,parte2:ConfiguraoavanadadoSamba
compartilhamentos e voc precisa bloquear o acesso do usurio a um compartilhamento
especfico,semremovlodogrupo.

possveltambmcriarumalistadeescrita,usandoaopo"writelist".Elacriaumacamada
adicional de proteo, permitindo que, dentro do grupo de usurios com acesso ao
compartilhamento,apenasalgunstenhampermissoparaalterarosarquivos,comoem:

[arquivos]
path=/mnt/arquivos
writable=no
validusers=+arquivos
writelist=maria

Nessecaso,usamosaopo"writable=no",quefazcomqueocompartilhamentopasseaser
somenteleitura.Aseguir,especificamosqueosusuriosdogrupo"arquivos"devemteracesso
(somenteleitura)eusamosaopo"writelist=maria"paracriarumaexceo,dizendoquea
maria pode escrever na pasta. importante notar que, neste exemplo, a maria deve fazer
parte do grupo "arquivos", caso contrrio teramos uma situao interessante, onde ela no
consegue alterar os arquivos no compartilhamento, pois no tem acesso a ele em primeiro
lugar.:)

C aso a maria no estivesse cadastrada no grupo, voc deveria incluir o login na opo "valid
users",comoem:

[arquivos]
path=/mnt/arquivos
writable=no
validusers=+arquivos,maria
writelist=maria

Podemostambmfazerooposto,restringindoaescritaparaalgunsusurios,masmantendoo
acesso para todos os demais. Nesse caso, usamos a opo "read list" para criar uma lista de
excees,comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=+arquivos,+admin
readlist=maria,jose

Nesseexemplo,usamosaopo"writable=yes"eespecificamosqueosusuriosdentrodos
grupos "arquivos" e "admin" tem acesso ao compartilhamento. Em seguida, usamos a opo
"readlist"paralimitaroacessodosusuriosmariaejose,deformaqueelespossamapenas
ler,semalterarosarquivosdentrodapasta.

Outra opo relacionada a "read only", que tambm aceita os valores "yes" e no". Na
verdade,elatemamesmafunodaopo"writable",apenasusaumalgicainvertida.Dizer
"writable=yes"oudizer"readonly=no"temexatamenteomesmoefeito,comoseisemeia
dzia.Emgeral,vocusaumaououtradeacordocomocontexto,comoumaformadetornar
oarquivomaislegvel,comoem:

[modelos]
path=/mnt/modelos
readonly=yes

C ontinuando,possvelrestringiroacessotambmcombasenoendereoIPounonomeda
mquina a partir da qual o usurio est tentando acessar o compartilhamento. Isso permite
adicionar uma camada extra de segurana no acesso a arquivos importantes, j que alm do
loginesenha,verificadoapartirdequalmquinaoacessoproveniente.

Isso feito atravs das opes "hosts allow" e "hosts deny" que permitem, respectivamente,
criar uma lista de mquinas que podem e que no podem acessar o compartilhamento. As
listaspodemincluirtantoosendereosIPquantoosnomesdasmquinas.

Para restringir o acesso ao compartilhamento a apenas duas mquinas especficas, voc


usaria:

[arquivos]
path=/mnt/arquivos
writable=yes
hostsallow=192.168.1.23,192.168.1.24

ou

[arquivos]
path=/mnt/arquivos
writable=yes
hostsallow=sparta,athenas

possveltambmfazeroinverso,bloqueandoocompartilhamentoparaacessosprovenientes
das duas mquinas. Nesse caso, mesmo que o usurio tente acessar usando um login vlido,
vaireceberamensagemdeacessonegado,comoseologintivessesidobloqueadoouasenha
tenha sido alterada. A lista no possui um tamanho mximo, voc pode incluir quantas
mquinas precisar, separando os endereos ou nomes por vrgula e espao. Voc pode
inclusivemisturarendereosIPcomnomesdemquinas,comonesseexemplo:

[arquivos]
path=/mnt/arquivos

writable=yes
http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 3/8
201761 AjustandoaspermissesdeacessoSamba,parte2:ConfiguraoavanadadoSamba
writable=yes
hostsdeny=192.168.1.23,athenas

possvel ainda combinar a restrio com base nos nomes e endereos com a restrio com
base nos logins de acesso, de forma que o acesso seja autorizado apenas quando as duas
condiesforemsatisfeitas.

Parapermitirqueapenasamariaeojoaoacessemocompartilhamentoeaindaassimapenas
seestiveremusandoumadasduasmquinaspermitidas,vocusaria:

[arquivos]
path=/home/arquivos
writable=yes
validusers=maria,joao
hostsallow=192.168.1.23,192.168.1.24

Voc pode autorizar ou restringir o acesso para uma faixa inteira de endereos omitindo o
ltimo octeto do endereo. Por exemplo, para que apenas clientes dentro da rede
"192.168.1.x" tenham acesso, voc inclui apenas a parte do endereo referente rede,
omitindoooctetoreferenteaohost,comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
hostsallow=192.168.1.

Se precisar criar excees, limitando o acesso a algumas mquinas dentro da faixa de


endereosespecificada,vocpodeusaraopo"EXC EPT"paraespecificarasexcees,como
em:

[arquivos]
path=/mnt/arquivos
writable=yes
hostsallow=192.168.1.EXCEPT192.168.1.23,192.168.1.24

C omisso,todososendereosdentrodafaixateriamacesso,comexceodo.23edo.24.O
mesmopodeserfeitoaousaraopo"hostsdeny",comoem:

[restrito]
path=/mnt/sda2/restrito
writable=yes
validusers=isac
hostsdeny=192.168.1.EXCEPT192.168.1.23

Aqui a lgica invertida e todos os hosts dentro da faixa de endereos so bloqueados, com
exceodo.23,quepassaaseronicoaceitopeloservidor.

Outro parmetro que pode ser usado ao criar excees o "ALL", que inclui todos os
endereos possveis. Se a idia que apenas um determinado endereo possa acessar o
compartilhamento,umaopousar"hostsdeny=ALLEXC EPT192.168.1.34".

O default do Samba permitir o acesso a partir de qualquer mquina, de forma que se voc
nousarnemaopo"hostsallow",nema"hostsdeny",qualquermquinapoderacessaro
compartilhamento.

Ao usar apenas a opo "hosts allow", apenas as mquinas listadas tero acesso ao
compartilhamento, as demais sero recusadas. Ao usar apenas a opo "hosts deny", apenas
asmquinaslistadasnoteroacessoaocompartilhamento(asdemaiscontinuamacessando).

Ao combinar o uso das opes "hosts allow" e "hosts deny", a opo "hosts allow" tem
precedncia(noimportaaordememqueelassejamcolocadas),deformaqueasmquinas
listadas tero acesso, mesmo que ele seja negado pela opo "hosts deny". Por exemplo, ao
usar:

[isos]
path=/mnt/isos
hostsallow=192.168.1.
hostsdeny=192.168.1.43
comment=Algoesterrado

...ohost"192.168.1.43"continuartendoacessoaocompartilhamento,poisfazpartedafaixa
de endereos cujo acesso autorizado pela opo "hosts allow". Neste caso, o Samba no
consideraaopo"hostsdeny=192.168.1.43"comoumaexceo,massimcomoumerrode
configurao.Parabloquearamquina,vocdeveriausar:

[isos]
path=/mnt/isos
hostsallow=192.168.1.EXCEPT192.168.1.43
comment=Agorasim

Em situaes onde voc precisa restringir temporariamente o acesso a um determinado


compartilhamento(paraalgumatarefademanuteno,porexemplo)vocpodeusaraopo
"available=no",comoem:

[arquivos]
path=/home/arquivos
writable=yes

validusers=maria,joao
http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 4/8
201761 AjustandoaspermissesdeacessoSamba,parte2:ConfiguraoavanadadoSamba
validusers=maria,joao
available=no

Elafazcomqueocompartilhamento"desaparea",damesmaformaquesevocapagasseou
comentasse a configurao. A principal vantagem que ao apagar voc precisaria escrever
tudo de novo para reativar o compartilhamento, enquanto ao usar o "available = no" voc
precisaapenasremoveraopooumudarpara"available=yes".

Outra opo interessante que pode ser includa a "browseable = no", que transforma o
compartilhamentoemumcompartilhamentooculto:

[arquivos]
path=/home/arquivos
writable=yes
browseable=no

C om isso, ele no aparece mais no ambiente de redes, mas pode ser acessado normalmente
sevocespecificaronomemanualmenteaomapearocompartilhamento:

Essa no propriamente uma opo de segurana, mas pode ser usada para afastar os
curiososdoscompartilhamentoscomacessorestrito.

C oncluindo, muitas opes que ficam disponveis no Swat podem ser omitidas ao configurar
manualmente, simplesmente porque so o default no Samba. O prprio Swat evita incluir
opesredundantesaogeraroarquivo,incluindoapenasasconfiguraesquesodiferentes
dosvaloresdefault.

Nonecessrioincluiropescomo"writable=no","available=yes"ou"browseable=yes"
no arquivo, pois estes j so os valores usados por padro no Samba. Apesar disso, uslos
tambm no atrapalha em nada, de forma que nada impede que voc os inclua no arquivo
paraselembrarmaisfacilmentedasopes.

Outra dica que voc pode verificar a qualquer momento quais usurios e quais mquinas
estoacessandocompartilhamentosnoservidorusandoocomando"smbstatus,comoem:"

#smbstatus

Sambaversion3.0.24
PIDUsernameGroupMachine

17107gdhgdhhp(192.168.1.2)
11588gdhgdhsemprao(192.168.1.10)

ServicepidmachineConnectedat

IPC$17107hpSunOct2815:54:042007
arquivos11588sempraoSunOct2815:23:592007

Nolockedfiles
Samba, parte 2: Configurao
avanada do Samba PARAZIMBRA
MAISSEGURANA,
CONTROLEEMOVILIDADE

Ajustandoaspermissesdeacesso
C om esta configurao, os clientes conseguem visualizar os arquivos da pasta normalmente,
masaindanoconseguemgravarnosarquivos.Aotentarsalvaralgumacoisanapasta,voc
recebeumamensagemdeacessonegado:

Isso acontece por dois motivos. O primeiro que o default do Samba compartilhar com
permisso apenas para leitura. C omo no dissemos nada sobre as permisses de acesso do
compartilhamentonoarquivodeconfigurao,elefoicompartilhadousandoodefault.

Para que o compartilhamento fique disponvel com permisso de leitura e escrita, precisamos
adicionaraopo"writable=yes"dentrodaconfiguraodocompartilhamento,queficar:

[arquivos]
path=/mnt/arquivos
writable=yes
comment=Teste

Muitoprovavelmente,mesmodepoisdereiniciaroSambavoccontinuarrecebendoomesmo
erro ao tentar gravar os arquivos. Dessa vez, o Samba autoriza a gravao, mas ela ainda
podeserabortadaseaspermissesdapastanopermitiremqueousuriogravearquivos.Se
voccriouapasta"/mnt/arquivos"comoroot,entoodefaultqueapenaselepossagravar
arquivos na pasta. Para permitir que outros usurios possam gravar, necessrio abrir as
permissesdapasta.

Aestaaltura,aleidomnimoesforodiriaparavocusarum:

#chmod777/mnt/arquivos

Obviamente, isso permitiria que os usurios gravassem na pasta. O problema que as


permissesficariamescancaradas,apontodequalquerum,quetenhaacessoaoservidor(por
qualquermeio)possaalterarosarquivosdentrodapasta,oquenonadabomdopontode
vistadasegurana.

No tpico sobre o Swat, vimos como criar um grupo usando o usersadmin (systemconfig
users) e abrir as permisses da pasta apenas para os usurios que fazem parte dele. Vamos
veragoracomofazerissovialinhadecomando.

O primeiro passo criar um grupo para os usurios que podero fazer alteraes na pasta,
usando o comando "groupadd". Eu prefiro criar grupos com o mesmo nome do
compartilhamento,paraficarmaisfcildelembrar,masissoficaaseucritrio.

#groupaddarquivos

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 1/8
201761 AjustandoaspermissesdeacessoSamba,parte2:ConfiguraoavanadadoSamba
Apartirda,vocpodeadicionarusuriosaogrupousandoocomando"adduser",nessecaso
especificandoousuriojcriadoeogrupoaoqualeleseradicionado,comoem:

#adduserjoaoarquivos
#addusermariaarquivos

Pararemoverusuriosdogrupo,vocusaocomando"deluser",comoem:

#deluserjoaoarquivos
#delusermariaarquivos

Depois de criar o grupo e adicionar os usurios a ele, falta apenas ajustar as permisses de
acessodapasta,deformaqueogrupotenhaacessocompleto,comoem:

#chgrparquivos/mnt/arquivos
#chmod775/mnt/arquivos

C om isso, trocamos o grupo dono da pasta e dizemos que tanto o dono quanto o grupo
possuem acesso completo. A partir desse ponto, o Samba autoriza o acesso para todos os
usurios cadastrados atravs do smbpasswd e o sistema autoriza a gravao para todos os
usuriosquefazempartedogrupo.

Sevocprecisarqueaalteraosejaaplicadadeformarecursiva,alterandoaspermissesde
todasassubpastasearquivos,adicioneaopo"R"nosdoiscomandos,comoem:

#chgrpRarquivos/mnt/arquivos
#chmodR775/mnt/arquivos

Almdeserviremparacontrolaraspermissesdeacessodosusuriosspastasdosistema,
os grupos podem ser usados para ajustar as permisses de acesso do Samba, de forma
bastantesimples.

Sevocquerqueocompartilhamentofiquedisponvelapenasparaosusuriosquecadastrou
no grupo "arquivos", adicione a opo "valid users = +arquivos" na seo referente ao
compartilhamento. O "+" indica que se trata de um grupo e no de um usurio isolado. O
Samba verifica ento quais usurios fazem parte do grupo e autoriza o acesso. A partir da,
quandovocquiserliberaroacessoparaumnovousurio,bastaadicionloaogrupo:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=+arquivos

Voc pode tambm especificar uma lista de usurios isolados, separandoos por vrgula, por
espao,oupelosdoiscombinados(oquepreferir),comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=joao,maria,jose

possvel tambm combinar as duas coisas, indicando um ou mais grupos e tambm alguns
usuriosavulsos,comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=+arquivos,jose,joaquim,+admin

Assim como na maioria das opes do Samba, a opo "valid users" exclusiva, ou seja, ao
dizerqueosusuriosdogrupoarquivosdevemteracesso,vocautomaticamenteexcluitodos
osoutros.Vocpodetambmfazerooposto,criandoumalistadeusuriosquenodevemter
acessoemantendooacessoparaosdemais.Nessecaso,vocusariaaopo"invalidusers",
comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
invalidusers=jose,joaquim

Nesse caso, todos os usurios cadastrados no Samba podem acessar, com exceo dos
usurios jose e joaquim. possvel ainda usar a opo "invalid users" para especificar
exceesaoespecificargruposusandoaopo"validusers",comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=+arquivos
invalidusers=joao

Nesse caso, todos os usurios dentro do grupo arquivos tero acesso, com exceo do joao.
Esta combinao pode ser usada em casos onde o grupo especificado tambm em outros

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 2/8
201761 AjustandoaspermissesdeacessoSamba,parte2:ConfiguraoavanadadoSamba
compartilhamentos e voc precisa bloquear o acesso do usurio a um compartilhamento
especfico,semremovlodogrupo.

possveltambmcriarumalistadeescrita,usandoaopo"writelist".Elacriaumacamada
adicional de proteo, permitindo que, dentro do grupo de usurios com acesso ao
compartilhamento,apenasalgunstenhampermissoparaalterarosarquivos,comoem:

[arquivos]
path=/mnt/arquivos
writable=no
validusers=+arquivos
writelist=maria

Nessecaso,usamosaopo"writable=no",quefazcomqueocompartilhamentopasseaser
somenteleitura.Aseguir,especificamosqueosusuriosdogrupo"arquivos"devemteracesso
(somenteleitura)eusamosaopo"writelist=maria"paracriarumaexceo,dizendoquea
maria pode escrever na pasta. importante notar que, neste exemplo, a maria deve fazer
parte do grupo "arquivos", caso contrrio teramos uma situao interessante, onde ela no
consegue alterar os arquivos no compartilhamento, pois no tem acesso a ele em primeiro
lugar.:)

C aso a maria no estivesse cadastrada no grupo, voc deveria incluir o login na opo "valid
users",comoem:

[arquivos]
path=/mnt/arquivos
writable=no
validusers=+arquivos,maria
writelist=maria

Podemostambmfazerooposto,restringindoaescritaparaalgunsusurios,masmantendoo
acesso para todos os demais. Nesse caso, usamos a opo "read list" para criar uma lista de
excees,comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
validusers=+arquivos,+admin
readlist=maria,jose

Nesseexemplo,usamosaopo"writable=yes"eespecificamosqueosusuriosdentrodos
grupos "arquivos" e "admin" tem acesso ao compartilhamento. Em seguida, usamos a opo
"readlist"paralimitaroacessodosusuriosmariaejose,deformaqueelespossamapenas
ler,semalterarosarquivosdentrodapasta.

Outra opo relacionada a "read only", que tambm aceita os valores "yes" e no". Na
verdade,elatemamesmafunodaopo"writable",apenasusaumalgicainvertida.Dizer
"writable=yes"oudizer"readonly=no"temexatamenteomesmoefeito,comoseisemeia
dzia.Emgeral,vocusaumaououtradeacordocomocontexto,comoumaformadetornar
oarquivomaislegvel,comoem:

[modelos]
path=/mnt/modelos
readonly=yes

C ontinuando,possvelrestringiroacessotambmcombasenoendereoIPounonomeda
mquina a partir da qual o usurio est tentando acessar o compartilhamento. Isso permite
adicionar uma camada extra de segurana no acesso a arquivos importantes, j que alm do
loginesenha,verificadoapartirdequalmquinaoacessoproveniente.

Isso feito atravs das opes "hosts allow" e "hosts deny" que permitem, respectivamente,
criar uma lista de mquinas que podem e que no podem acessar o compartilhamento. As
listaspodemincluirtantoosendereosIPquantoosnomesdasmquinas.

Para restringir o acesso ao compartilhamento a apenas duas mquinas especficas, voc


usaria:

[arquivos]
path=/mnt/arquivos
writable=yes
hostsallow=192.168.1.23,192.168.1.24

ou

[arquivos]
path=/mnt/arquivos
writable=yes
hostsallow=sparta,athenas

possveltambmfazeroinverso,bloqueandoocompartilhamentoparaacessosprovenientes
das duas mquinas. Nesse caso, mesmo que o usurio tente acessar usando um login vlido,
vaireceberamensagemdeacessonegado,comoseologintivessesidobloqueadoouasenha
tenha sido alterada. A lista no possui um tamanho mximo, voc pode incluir quantas
mquinas precisar, separando os endereos ou nomes por vrgula e espao. Voc pode
inclusivemisturarendereosIPcomnomesdemquinas,comonesseexemplo:

[arquivos]
path=/mnt/arquivos

writable=yes
http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 3/8
201761 AjustandoaspermissesdeacessoSamba,parte2:ConfiguraoavanadadoSamba
writable=yes
hostsdeny=192.168.1.23,athenas

possvel ainda combinar a restrio com base nos nomes e endereos com a restrio com
base nos logins de acesso, de forma que o acesso seja autorizado apenas quando as duas
condiesforemsatisfeitas.

Parapermitirqueapenasamariaeojoaoacessemocompartilhamentoeaindaassimapenas
seestiveremusandoumadasduasmquinaspermitidas,vocusaria:

[arquivos]
path=/home/arquivos
writable=yes
validusers=maria,joao
hostsallow=192.168.1.23,192.168.1.24

Voc pode autorizar ou restringir o acesso para uma faixa inteira de endereos omitindo o
ltimo octeto do endereo. Por exemplo, para que apenas clientes dentro da rede
"192.168.1.x" tenham acesso, voc inclui apenas a parte do endereo referente rede,
omitindoooctetoreferenteaohost,comoem:

[arquivos]
path=/mnt/arquivos
writable=yes
hostsallow=192.168.1.

Se precisar criar excees, limitando o acesso a algumas mquinas dentro da faixa de


endereosespecificada,vocpodeusaraopo"EXC EPT"paraespecificarasexcees,como
em:

[arquivos]
path=/mnt/arquivos
writable=yes
hostsallow=192.168.1.EXCEPT192.168.1.23,192.168.1.24

C omisso,todososendereosdentrodafaixateriamacesso,comexceodo.23edo.24.O
mesmopodeserfeitoaousaraopo"hostsdeny",comoem:

[restrito]
path=/mnt/sda2/restrito
writable=yes
validusers=isac
hostsdeny=192.168.1.EXCEPT192.168.1.23

Aqui a lgica invertida e todos os hosts dentro da faixa de endereos so bloqueados, com
exceodo.23,quepassaaseronicoaceitopeloservidor.

Outro parmetro que pode ser usado ao criar excees o "ALL", que inclui todos os
endereos possveis. Se a idia que apenas um determinado endereo possa acessar o
compartilhamento,umaopousar"hostsdeny=ALLEXC EPT192.168.1.34".

O default do Samba permitir o acesso a partir de qualquer mquina, de forma que se voc
nousarnemaopo"hostsallow",nema"hostsdeny",qualquermquinapoderacessaro
compartilhamento.

Ao usar apenas a opo "hosts allow", apenas as mquinas listadas tero acesso ao
compartilhamento, as demais sero recusadas. Ao usar apenas a opo "hosts deny", apenas
asmquinaslistadasnoteroacessoaocompartilhamento(asdemaiscontinuamacessando).

Ao combinar o uso das opes "hosts allow" e "hosts deny", a opo "hosts allow" tem
precedncia(noimportaaordememqueelassejamcolocadas),deformaqueasmquinas
listadas tero acesso, mesmo que ele seja negado pela opo "hosts deny". Por exemplo, ao
usar:

[isos]
path=/mnt/isos
hostsallow=192.168.1.
hostsdeny=192.168.1.43
comment=Algoesterrado

...ohost"192.168.1.43"continuartendoacessoaocompartilhamento,poisfazpartedafaixa
de endereos cujo acesso autorizado pela opo "hosts allow". Neste caso, o Samba no
consideraaopo"hostsdeny=192.168.1.43"comoumaexceo,massimcomoumerrode
configurao.Parabloquearamquina,vocdeveriausar:

[isos]
path=/mnt/isos
hostsallow=192.168.1.EXCEPT192.168.1.43
comment=Agorasim

Em situaes onde voc precisa restringir temporariamente o acesso a um determinado


compartilhamento(paraalgumatarefademanuteno,porexemplo)vocpodeusaraopo
"available=no",comoem:

[arquivos]
path=/home/arquivos
writable=yes

validusers=maria,joao
http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 4/8
201761 AjustandoaspermissesdeacessoSamba,parte2:ConfiguraoavanadadoSamba
validusers=maria,joao
available=no

Elafazcomqueocompartilhamento"desaparea",damesmaformaquesevocapagasseou
comentasse a configurao. A principal vantagem que ao apagar voc precisaria escrever
tudo de novo para reativar o compartilhamento, enquanto ao usar o "available = no" voc
precisaapenasremoveraopooumudarpara"available=yes".

Outra opo interessante que pode ser includa a "browseable = no", que transforma o
compartilhamentoemumcompartilhamentooculto:

[arquivos]
path=/home/arquivos
writable=yes
browseable=no

C om isso, ele no aparece mais no ambiente de redes, mas pode ser acessado normalmente
sevocespecificaronomemanualmenteaomapearocompartilhamento:

Essa no propriamente uma opo de segurana, mas pode ser usada para afastar os
curiososdoscompartilhamentoscomacessorestrito.

C oncluindo, muitas opes que ficam disponveis no Swat podem ser omitidas ao configurar
manualmente, simplesmente porque so o default no Samba. O prprio Swat evita incluir
opesredundantesaogeraroarquivo,incluindoapenasasconfiguraesquesodiferentes
dosvaloresdefault.

Nonecessrioincluiropescomo"writable=no","available=yes"ou"browseable=yes"
no arquivo, pois estes j so os valores usados por padro no Samba. Apesar disso, uslos
tambm no atrapalha em nada, de forma que nada impede que voc os inclua no arquivo
paraselembrarmaisfacilmentedasopes.

Outra dica que voc pode verificar a qualquer momento quais usurios e quais mquinas
estoacessandocompartilhamentosnoservidorusandoocomando"smbstatus,comoem:"

#smbstatus

Sambaversion3.0.24
PIDUsernameGroupMachine

17107gdhgdhhp(192.168.1.2)
11588gdhgdhsemprao(192.168.1.10)

ServicepidmachineConnectedat

IPC$17107hpSunOct2815:54:042007
arquivos11588sempraoSunOct2815:23:592007

Nolockedfiles

Neste exemplo, podemos ver que o usurio "gdh" est logado no servidor a partir de duas
mquinasdiferentes,umindciodequeduaspessoasestoutilizandoamesmaconta.

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/pagina2.html 5/8
Samba, parte 2: Configurao
avanada do Samba PARAZIMBRA
MAISSEGURANA,
CONTROLEEMOVILIDADE

Introduo
TESTEAGORA
C liqueaquiparaveraprimeiraparte

C omovimosnaprimeirapartedotutorial,amaiorpartedaconfiguraodoSamba,incluindo
asconfiguraesgeraisdoservidor,impressorasetodososcompartilhamentos,feitaemum
nicoarquivodeconfigurao,o"/etc/samba/smb.conf".Programasdeconfigurao,como
oSwat,simplesmentelemestearquivo,"absorvem"asconfiguraesatuaisedepoisgeramo
arquivo novamente com as alteraes feitas dentro da interface. Isso permite que o Swat
coexista com a edio manual do arquivo. C omo comentei a pouco, o Swat remove todos os
seuscomentrioseformatao(deixandoapenasasopes),porissomuitosevitamuslo.

Apesar disso, o formato do arquivo de configurao do Samba bastante simples e por isso
muitas vezes mais rpido e at mais simples editar diretamente o arquivo do que fazlo
atravsdoSwat.AoinstalaroSamba,criadoumarquivodeconfiguraodeexemplo,com
vrios comentrios. Assim como no caso do Squid, ele longo e difcil de entender, por isso
acabasendomaisfcilrenomeloecomearcomumarquivoembranco,ouusarcomobase
aconfiguraogeradaatravsdoSwat.

Vamos ento a uma segunda rodada de explicaes sobre a configurao do Samba, agora
editando diretamente o arquivo smb.conf e explorando com maior profundidade as opes
disponveis. Vamos comear com um exemplo simplista, onde temos um nico
compartilhamentodeteste:

[global]
netbiosname=Sparta
workgroup=Grupo

[arquivos]
path=/mnt/arquivos
comment=Teste

C omovocpodever,oarquivodivididoemsees.Aprimeirasempreaseo"[global]",
quecontmasopesgeraisdoservidor.Porenquanto,definimosapenasonomedoservidor
(netbios name) e o nome do grupo de trabalho (workgroup), que seria o mnimo necessrio
para colocar o servidor na rede. As demais opes (no especificadas no arquivo) so
configuradas usando os valores default. Se voc omitir a opo "workgroup", por exemplo, o
Sambavaireverterparaogrupo"WORKGROUP",queopadro.

Sequiser,vocpodetambmadicionarumadescrioparaoservidor,oquefeitoatravsda
opo"serverstring"(adicionadadentrodaseo[global]),comoem:

serverstring=ServidorSamba

Duasdicassoque:

a) O default do Samba usar a string "Samba 3.0.24" (onde o "3.0.24" a verso usada)
comodescrioquandoaopo"serverstring"noestpresentenoarquivo.

b) Nas mquinas com o Windows XP, a descrio do servidor aparece antes do nome
propriamente dito, como em "Servidor Samba (Sparta)". importante levar isso em
considerao, j que, no final das contas, o que importa o que os usurios iro ver ao
navegarpeloambientederedes:

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/
201761 Samba,parte2:ConfiguraoavanadadoSamba

Compreoseu

...ouleiaoscaptulosdisponveisonline.
Abaixo da seo [global], inclumos sees adicionais para cada compartilhamento, que o
casodaseo"[arquivos]"quecriaocompartilhamentodeteste.

O "[arquivos]" indica o nome do compartilhamento, da forma como ele aparecer na rede.


Logoaseguirtemosalinha"path",quedizqualpastadoservidorsercompartilhadaealinha
"comment"(opcional),quepermitequevocincluaumcomentrio.

Semprequealterarmanualmenteosmb.conf,oumesmoalteraralgumasopespeloSwate
quiser verificar se as configuraes esto corretas, rode o comando testparm. Ele funciona
como uma espcie de debug, indicando erros grosseiros no arquivo e informando o papel do
servidornarede:

#testparm

Loadsmbconfigfilesfrom/etc/samba/smb.conf
Processingsection"[arquivos]"
LoadedservicesfileOK.
Serverrole:ROLE_STANDALONE

O "ROLE_STANDALONE" significa que o servidor foi configurado como um membro normal do


grupo de trabalho. possvel tambm fazer com que o servidor Samba atue como um
controladordedomnio,comoveremosemdetalhesmaisadiante.

Em caso de erros no arquivo, o testparm ajuda a localizar o problema, indicando a linha ou


opoinvlida,deformaquevocpossacorrigla.Vejaoqueaconteceaoadicionarumerro
simples,usandoalinha"wrritable=yes"nolugarde"writable=yes":

Unknownparameterencountered:"wrritable"
Ignoringunknownparameter"wrritable"

OSambanodiferenciaousodemaisculaseminsculasnasopes,deformaquetantofaz
escrever "writable = yes", "writable = Yes" ou "writable = YES". Entretanto, muitos dos
parmetros no so diretamente usados pelo Samba, mas sim repassados ao sistema que,
diferentementedoSamba,diferenciaoscaracteres.Umexemplosoaslocalizaesdepastas
acompartilhar.Sevocescrever"path=/mnt/Arquivos"(emvezde"path=/mnt/arquivos"),
ocompartilhamentonovaifuncionar,poisosistemareportarqueapastanoexiste.

Alm do caractere "#", possvel usar tambm o "" para comentar linhas. A principal
observaoquevocnopodeinserircomentriosemlinhasvlidas(mesmoquenofinalda
linha), pois, ao fazer isso, toda a linha passa a ser ignorada pelo Samba. Neste exemplo, o
comentrio foi includo na linha "path", o que acaba por desativar o compartilhamento
completamente:

[teste]
path=/mnt/arquivos#Pastacompartilhada
comment=Compartilhamentoquenofunciona

Otestparmtambmnoindicaoerrodiretamente,jqueeletambmconsideraalinhacomo
um comentrio, o que pode levlo a perder um bom tempo tentando descobrir onde est o
problema.Aoincluircomentriosnoarquivo,usesemprelinhasseparadas:

[teste]
#Pastacompartilhada
path=/mnt/arquivos
comment=Agorasim

As alteraes no arquivo so lidas periodicamente pelo Samba (o default so 3 minutos) e


aplicadasautomaticamente.Issopermitequeasmudanasdeconfiguraosejamaplicadasde
forma suave, sem prejudicar o acesso dos usurios, o que importante em um ambiente de
produo.Parafazercomqueasalteraesentrememvigorimediatamente,reinicieoservio
doSamba,comoem:

#/etc/init.d/sambarestart

ou:

#servicesmbrestart

A partir da, o compartilhamento estar disponvel. Ao tentar acessar o servidor atravs do


"Meus locais de rede" nos clientes Windows, voc receber um prompt de senha, onde voc
precisafornecerumdosloginscadastradosnoservidorusandoocomando"smbpasswda":

http://www.hardware.com.br/tutoriais/sambaconfiguracaoavancada/ 2/6
201761 Samba,parte2:ConfiguraoavanadadoSamba

importante enfatizar que todos os usurios cadastrados no Samba precisam tambm existir
no sistema, por isso, antes de usar o comando "smbpasswd a", voc deve usar o adduser
paracriarousurio.C omociteianteriormente,asoluoparacasosemquevocnodeseja
criar contas vlidas para todos os usurios criar usurios limitados usando o comando
"adduserdisabledloginnocreatehomeusuario"ou"adduserMusuario".

Depois de logado, o cliente pode visualizar os compartilhamentos do servidor. Por enquanto


temosapenasocompartilhamento"arquivos",quemostraocontedodapasta"/mnt/arquivos"
doservidor,masaolongodotutorialadicionaremosmuitosoutrosrecursosaoservidor:

3/6

Vous aimerez peut-être aussi