Samba

De RJGS Wiki
Ir para navegação Ir para pesquisar

Samba[editar | editar código-fonte]

Samba share[editar | editar código-fonte]

Instalação[editar | editar código-fonte]

Para instalar o Samba basta rodar um *sudo apt install*. Abaixo, o comando que instala o samba juntamente com alguns adicionais.

sudo apt install samba -y 
sudo apt install samba-common -y 
sudo apt install samba-testsuite -y 
sudo apt install samba-vfs-modules -y 
sudo apt install fuse -y 
sudo apt install fuse-emulator-gtk -y 
sudo apt install fuse-emulator-utils -y 
sudo apt install fusefat -y 
sudo apt install fuse-zip -y 
sudo apt install fuseiso -y 
sudo apt install fusesmb -y 
sudo apt install gvfs -y 
sudo apt install gvfs-common -y 
sudo apt install gvfs-fuse -y 

Usuário do samba[editar | editar código-fonte]

Para utilização do samba é necessário cadastrar seu usuário nele.

sudo smbpasswd -a $USER 

Será solicitado incluir uma senha. Pode-se atribuir a mesma senha de login no sistema do usuário, embora não seja aconselhável.

Configuração[editar | editar código-fonte]

Configuração de compartilhamentos[editar | editar código-fonte]

Exemplo de arquivo smb.conf:

workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
wins support = yes
dns proxy = yes
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
pam password change = yes
map to guest = bad user
#    
[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700
#
#    
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
#
#    
== ## PASTAS COMPARTILHADAS ==
#    
[usuario2$Servidor]
   comment = Pasta home de Usuario em Servidor.
   path = /home/usuario2/
   browseable = yes
   read only = no
   guest ok = no
   valid users = usuario2
#    
[usuario1$Servidor]
   comment = Pasta home de Bruna usuario1 em Servidor.
   path = /home/usuario1/
   browseable = yes
   read only = no
   guest ok = no
   valid users = usuario1, usuario2
#
[play$Servidor]
   comment = HD de Multimidia em Servidor.
   path = /mnt/A829-4889/
   browseable = yes
   read only = no
   guest ok = yes
#
[HD$Servidor]
   comment = HD em Servidor.
   path = /mnt/3D5F3E455DFDCFF4/
   browseable = yes
   read only = no
   guest ok = no
   valid users = usuario2
#
[host$Servidor]
   comment = Host do Apache em Servidor.
   path = /var/www/html/
   browseable = yes
   read only = no
   guest ok = yes
#
[nuvem$Servidor]
   comment = Pasta do Dropbox em Servidor.
   path = /home/usuario2/Dropbox/
   browseable = yes
   read only = no
   guest ok = no
   valid users = usuario2

Smb.conf (completo)[editar | editar código-fonte]

Parametros iniciais

Variaveis de ambiente que podem ser usadas

  • %a - sistema operacional do cliente
  • %I - endereço ip do cliente
  • %m - nome NetBios do cliente
  • %M - Nome DNS do cliente
  • %u - Nome do usuario efetivo
  • %U - Nome do usuario NetBios
  • %g - Grupo primario Linux correpondente ao %u
  • %G - Grupo primario de %U
  • %H - Diretorio home de %u
  • %S - Nome do servico corrente
  • %d - Numero do processo (PID) do servidor corrente
  • %h - Nome DNS da maquina em que o samba esta rodando
  • %L - Nome NetBios do servidor samba
  • %N - Diretorio home do servidor, do mapeamento automount
  • %v - Versão do samba
  • %R - O nivel do protocolo SMB que foi negociado
  • %T - Data e horario correntes

Configuração Global

[global]

Determina o nome NetBios do servidor samba

netbios name = SAMBA

Determina o dominio ou grupo de trabalho no qual o samba vai se anunciar

workgroup = DOMINIO

Define a pontuação do servidor samba para ser eleito como PDC, minimo de 33

os level = 254

Define se o servidor tentará se tornar o navegador principal do dominio.

domain master = yes

Define se o servidor tentará ou não participar das eleições para navegador local do grupo de trabalho.

local master = yes

Define se o servidor samba na eleição de masterbrowser terá vantagens.

prefered master = yes

Define se o servidor samba é um dominio para que clientes façam logons

domain logons = yes

Define se o servidor é o masterbrowser

master browse = yes

Determina um comentatio que ira aparecer junto ao ambiente de rede

server string = Samba %v on (%h)

Determina o caminho dos perfis das contas, no exemplo abaixo, ficara em \\nomedoservidor\[Profiles]\nome_da_conta

logon path = \\%L\Profiles\%U

Determina o drive de logon

logon drive = J:

Determina o logon home ou seja pasta do usuário principal manualmente

logon home = \\%L\homes\%U

Determina um script de logon padrão caso deseje

logon script = nomedoscript.bat ou nomedoscript.cmd

Define o nivel de segurança do servidor, são eles [user], [server], e [domain]

security = user

Define onde serão armazenadas as informações sobre usuários e grupos do dominio, são eles [tbsam], [smbpasswd], [ldapsam]

passdb backend = tbsam

Determina a localização dos arquivos de log

log file = /var/log/samba/log.%m

Define o tamanho maximo do log do samba. Padrão de 5mb ou 5000kb.

max log size = 5000

Define se ativa ou não a gravação de data/hora nos arquivos de log gerados pelo samba.

debug timestamp = yes

Define a ordem de pesquisa da resolução de nomes do samba

name resolve order = lmhosts host wins bcast
Define o nivel de depuração do samba nos daemons. valores de 0 a 9.
debug level = 1

Define como o servidor samba vai se anunciar

announce as = [NT Server] [NT Workstation] [Windows 9x]

Define o programa de senhas utilizado pelo samba

passwd program = /usr/bin/passwd %u

Define o script de logon da conta, no caso abaixo ele ira procurar algum scipts que bate com o mesmo numero da conta criada, portanto Netbios name.

logon script = %U.bat

Define o arquivo onde estao instaladas e configuradas as impressoras no servidor, muito importante caso deseje compartilhar impressoras no samba

printcap name = /etc/printcap
load printers = yes

Define se tem suporte wins ou nao.

wins support = yes
wins proxy = yes
dns proxy = yes
max wins ttl = 518400
wins server = 192.168.xxx.xxx

Define o numero de caracteres das senhas e do login

password level = 10
username level = 10

Define se as restrições do usuário nos módulos PAM terão efeito também no samba.

obey pam restrictions = yes

Define as condições das senhas.

min password length = 5
password history = 2
user must logon to change password = yes
maximum password age = 10
minimum password age = 5
lockout duration = 3
reset count minutes = 2
bad lockout attempt = 2

Define se o servidor vai mostrar horas

time server = yes
lpq command = lpq -P'%p'
passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password*%n\n*passwd:*all*authentication*tokens*updated*successfully*
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
lprm command = lprm -P'%p' %j
lpresume command = lpc release '%p' %j
print command = lpr -r -P'%p' %s
printing = lprng
queuepause command = lpc stop '%p'
unix password sync = Yes
queueresume command = lpc start '%p'
lppause command = lpc hold '%p' %j
log level = 1
Define se usa caracteres em formato windows
unix charset = iso8859-1
display charset = cp850

Define se as palavras vão ser em minusculas

preserve case = no
short preserve case = no
default case = lower

Funções:

comment = [comentário] define um comentario
read only = [yes] [no] define se o compartilhamento é ou não somente leitura
writable = [yes] [no] define se o compartilhamento é ou não modo escrita
public = [yes] [no] define se o compartilhamento é publico
valid users = [user1] [@grupo1] define os usuarios validos a acessar o compartilhamento
create mask = [0600] define a mascara em formato de octetos
create mode = [0640] define as permissões padrões da criação de arquivos
force create mode = [0640]
directory mask = [0700]
force directory mode = [0640]
browsable = [yes] [no]
locking = [yes] [no]
write cache size = [500000]
follow symlink = [yes] [no]
wide links = [yes] [no]
guest ok = [yes] [no]
path = [/arquivos/scripts]
preserve case = [yes] [no]
short preseve case = [yes] [no]
default case = [lower] [upper]
character set = [iso8859-1]  seleciona a lingua padrão do samba
client code page = [850] Seleciona a página de códigos do samba para tratar os caracteres
preserve case = [yes] [no]
valid chars = [á:Á é:É ó:Ó ú:Ú â:Â ê:Ê ô:Ô ã:Ã õ:Ô à:À ò:Ò]
guest acount = [nobody] [@grupo1] Define a conta local que será mapeada quando um usuario se conectar sem senha
invalid users = [user1] [@grupo1] Define uma lista de usuário que estão proibidos a acessar o compartilhamento
valid users = [user1] [@grupo1] Semelhante a "invalid users" porém é ao contrário
obey pam restrictions = [yes] [no] Indica se as restrições do usuário nos módulos PAM terão efeito

Define se oculta ou nao as extenções dos arquivos

hide dot files = Yes

Define quais extenção vão ser ocultadas

hide files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp

Define quais extenções vão ser vetadas, ou seja não poderão ser gravadas.

veto files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp

Define se o usuario pode ou nao apagar os arquivos vetados.

delete veto files = yes

Define uma lixeira

vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = True
recycle:maxsize = 1024000
recycle:versions = True
recycle:noversions = .doc|.xls|.ppt|.pdf
recycle:touch = False
recycle:exclude = *.tmp*.temp *.obj*.~??

Seção especial do samba, não pode ser esquecida, é a pasta pessoal do login

[homes]
comment = Pastas dos usuarios
read only = no
writable = yes
public = no
writeable = Yes
valid users = %S
create mask = 0664
create mode = 0640
force create mode = 0640
directory mask = 0775
force directory mode = 0777
browsable = yes
locking = no
write cache size = 500000

Define parametros para os perfis do windows

[Profiles]
path = /arquivos/profiles
read only = No
guest ok = Yes
writeable = Yes
browseable = No

Define parametros para os scripts de logon da microsoft

[netlogon]
browseable = no
comment = Compartilhamento de Scripts
path = /arquivos/scripts

Seção especial do samba, não pode ser esquecida

[printers]
comment = Impressoras ( Todas )
path = /var/spool/samba
printable = Yes
browseable = No
guest ok = No
writable = No

Define parametros para uma possivel atualização de anti virus

[base]
guest ok = No
writable = yes
read only = No
path = /arquivos/antivirus/base

Define parametros para uma impressora

[hp2100m]
comment = Impressora Laser Postscript
path = /var/spool/samba
printer name = HP
browseable = yes
printable = yes
printer = lp
printing = lprng
read only = yes
guest ok = yes
valid users = usuario1, usuario2, @grupo1, @grupo2
create mode = 0700

Define parametros para o diretoio principal

[samba]
comment = Diretorio Principal
path = /arquivos
read only = No
force create mode = 0775
force directory mode = 0775
guest ok = yes
writeable = Yes

Define um exemplo de compartilhamento

[teste]
comment = Pasta de teste
path = /arquivos/teste
write list = @suporte
read only = No
force create mode = 0775
force directory mode = 0775
valid users = usuario1, usuario2, @grupo1, @grupo2
guest ok = Yes
browseable = Yes
Define se oculta ou nao as extenções dos arquivos
hide dot files = Yes
Define quais extenção vão ser ocultadas
hide files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp
Define quais extenções vão ser vetadas, ou seja não poderão ser visualizadas
veto files = /*.mp3/*.wav/*.tif/*.pif/*.mpg/*.mpeg/*.jpg/*.bmp
Define se o usuario pode ou nao apagar os arquivos vetados.
delete veto files = yes

Um Exemplo Completo

[exemplo]
comment = Comentario
path = /arquivos/teste
valid users = @grupo1, @grupo2
read only = No
create mask = 0777
force create mode = 0775
force security mode = 0775
guest ok = No
browseable = No
locking = no
write cache size = 500000
share modes = no
veto files = /*.mp3/*.wav/*.tif/*.pif/*.jpg/*.bmp
hide files = /*.mp3/*.wav/*.tif/*.pif/*.jpg/*.bmp
vfs objects = recycle
recycle:repository = .recycle
recycle:keeptree = True
recycle:maxsize = 1024000
recycle:versions = True
recycle:noversions = .doc|.xls|.ppt|.pdf
recycle:touch = False
recycle:exclude = *.tmp *.temp *.obj *.~??

SAMBA 4 AD/CD[editar | editar código-fonte]

Instalação[editar | editar código-fonte]

Pre-instalação[editar | editar código-fonte]

Preparação do ambiente para a instalação. Aconselhamos a executar os comandos no modo sudo, individualmente.

apt-get install build-essential
apt-get install libacl1-dev
apt-get install libattr1-dev
apt-get install libblkid-dev
apt-get search libgnutls-dev
apt-get install libreadline-dev
apt-get install python-dev
apt-get install python-dnspython
apt-get install gdb
apt-get install pkg-config
apt-get install libpopt-dev
apt-get install libldap2-dev
apt-get install libgnutls28-dev
apt-get install libpam-cracklib
apt-get install libpam-doc
apt-get install libpam-modules
apt-get install libpam-modules-bin
apt-get install libpam-runtime
apt-get install libpam0g
apt-get install libpam0g-dev

Executa a instalação[editar | editar código-fonte]

Cria o diretório para baixar o SAMBA4

mkdir .samba4

Entra na pasta

cd .samba4

Baixar o SAMBA4

wget https://download.samba.org/pub/samba/samba-latest.tar.gz

Descompactar

tar xvfz samba-latest.tar.gz

Entra da pasta extraída

cd samba(tab)

Compile com os seguintes comandos

./configure --enable-debug
make ; make install

Fontes[editar | editar código-fonte]