Instalando e Configurando o SAMBA3 no FreeBSD 8.1 Release

Olá. Artigo com o objetivo de instalar e configurar de forma básica e objetiva o SAMBA 3.5.6 no FreeBSD 8.1 Release.

[ Hits: 29.278 ]

Por: Danilo Perillo Chiacchio em 23/06/2011


Manipulando o daemon do SAMBA



Passo 4: Como todo serviço de sistema, o SAMBA pode ser iniciado ou pausado caso desejado. Os daemons do SAMBA (smnd e nmbd) podem ser inicializados, pausados, restartados ou mesmo obter o status dos mesmsos atraves dos comandos abaixo:

# /usr/local/etc/rc.d/samba start – Inicia o serviço;
# /usr/local/etc/rc.d/samba stop – Pausa o serviço;
# /usr/local/etc/rc.d/samba restart – Reinicia o serviço;
# /usr/local/etc/rc.d/samba status – Mostra o status do serviço;


Nota: Os daemons do SAMBA significam, basicamente:
  • smbd: O acronimo de smbd é “Server Message Block Daemon” é tem a função de fornecer serviços de compartilhamento de arquivos e impressoras para clientes Windows, originalmente Windows 95/98, Windows NT, Windows for Workgroups. Nas versões mais atuais dos sistemas Windows, o protocolo utilizado para essa finalidade é o CIFS, mas o suporte ao SMB ainda é mantido.
  • nmbd: NetBIOS name server to provide NetBIOS over IP naming services to clients, esse é o significado de “nmbd”. Esse daemon prove suporte a serviços de nome e navegação para o protocolo NetBIOS.

Preparando o arquivo de configuração: /usr/local/etc/smb.conf

Passo 5: Agora, precisamos editar o arquivo de configuração do SAMBA e inserir as opções desejadas no mesmo. Por default, o arquivo principal de configuração do SAMBA fica localizado no caminho abaixo:

# cd /usr/local/etc/
# ee smb.conf


Um exemplo do arquivo “smb.conf” pode ser observado abaixo:

[global]
workgroup = WORKGROUP
netbios name = firewall
server string = FreeBSD Samba Server
smb ports = 139
# log file = /var/log/samba/log.%m
max log size = 100
local master = yes
os level = 100
preferred master = yes
preserve case = no
default case = lower
encrypt passwords = yes
security = user
hosts allow = 192.168.1. 127.
[homes]
path = /usr/home/%u/share
valid users = %S
read only = no
create mask = 1700
directory mask = 1700
browseable = no
[arquivos]
comment = Arquivos Compartilhados pelo Samba Server
path = /arquivos_samba
valid users = danilo danilo2
public = no
printable = no
writeable = yes
browseable = yes
create mask = 644
vfs objects = recycle
recycle:keeptree = yes
recycle:versions = yes
recycle:repository = /var/spool/samba/trash/%U
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso
recycle:exclude_dir = tmp, cache

[financeiro]
comment = Arquivos Departamento Financeiro
path = /financeiro
valid users = user user2
public = no
printable = no
writeable = yes
browseable = yes
create mask = 644

Breve explicação sobre as opções (Comentário sobre a mesma):

O SAMBA é dividido em duas sessões: Uma area de configurações “Globais” e outra area onde inserimos informações sobre os compartilhamentos de diretórios, impressoras, etc. Na sessão Global, inserimos configurações que afetam todo o funcionamento do SAMBA, ou seja, afetam todos os compartilhamentos providos por ele. Já na sessão dos compartilhamentos, podemos definir configurações que só terão impacto especificamente em um determinado compartilhamento e não em todos.

[global]
# Nome do dominio ou grupo de trabalho em que o host faz parte;
workgroup = WORKGROUP

# Nome NetBIOS da máquina (o mesmo nome que é definido na instalação do FreeBSD). Essa entrada é opcional;
netbios name = firewall

# Descrição para a função da máquina ou algo desejado pelo Administrador;
server string = FreeBSD Samba Server

# Porta lógica default que o SAMBA utiliza. Essa entrada é opcional, já que esse valor é default;
smb ports = 139

# Define em qual arquivo serão armazenados os log's do SAMBA. Por default, na instalação do SAMBA já são criados dois arquivos para essa função. Os mesmos ficam armazenados em /var/log/samba. Observe que essa linha não está em uso, apenas para exemplo;
# log file = /var/log/samba/log.%m

# Tamanho (em KB) máximo do arquivo de log do SAMBA;
max log size = 100

# Em redes Windows, uma das máquinas fica sempre responsavel por montar e atualizar uma lista dos compartilhamentos disponiveis eenvia-las aos demais, conforme solicitado.O host que executa essa função é chamado de “Master Browser”. O cargo de Master Browser em uma rede é disputado atraves de uma eleição, onde os parametros “os level” e “preferred master” são analisado e comparados entre as máquinas competidoras. Com isso basta definir as opções abaixo para que nosso host consiga entrar nessa disputa, já que o mesmo ira fornecer compartilhamentos de arquivos e impressão:
os level = 100
preferred master = yes
local master = yes

# Faz com que todos os arquivos que sejam inseridos nos compartilhamentos sigam um padrão, ou seja, os nomes de todos os arquivos serão armazenados em caixa baixo (letra minuscula):
preserve case = no
default case = lower

# Opção default do SAMBA. Habilita a criptografia de senhas;
encrypt passwords = yes

# Define o modo de segurança em que o SAMBA irá operar. Todos os modos possíveis são: share, user, server, domain e ads, onde cada um possui sua particularidade e deve ser inserido tendo isso em mente. No caso, user significa que deve existir usuário no sistema e também no SAMBA;
security = user

# Nesse caso, estamos permitindo a conexão com o servidor maquinas presentes na rede Classe C e a Interface de Loopback. Essa entrada poderia ser também como: 192.168.1.0/24 e 127.0.0.0/8;
hosts allow = 192.168.1. 127.

# Ativa o uso do sistema CUPS em conjunto com o SAMBA. Na verdade, nas versões mais novas do SAMBA o CUPS já é o sistema de gerenciamento de impressão padrão. Tenha em mente que o CUPS é mais uma opção para o gerenciamento de impressão. Em muitos casos, o próprio SAMBAsozinho pode compartilhar as impressoras sem problema algum;
printing = cups

# Opção necessária que faz com que o SAMBA carregue as impressoras por padrão, quando a mesma está configurada no arquivo /usr/local/etc/smb.conf;
load printers = yes

# Uma vantagem da utilização de usuários reais no servidor SAMBA, é a vantagem de poder compartilhar os diretórios “home” de cada usuário cadastrado no sistema, através da seção [homes], conforme mostrada abaixo. Lembre-se: O usuário deve existir no sistema, no SAMBA e possuir um diretório home para que isso funcione;
[homes]

# Caminho do diretório a ser compartilhado localizado no FileSystem do FreeBSD. Nesse caso, muita atenção. Os diretórios home de cada usuário do sistema ficam localizados no diretório /usr/home. A variavel “%u” utilizada significa nome do usuário cadastrado no sistema, ou seja, cadastrado no FreeBSD. Já o diretório “share” foi criado justamente para que ele possa ser compartilhado, ao inves do diretório home “raiz” de cada usuário. O objetivo é fazer com que os demais arquivos (incluse arquivos de configuração do usuário) não apareçam para o usuário, o que em muitos casos pode confundir o mesmo ou o mesmo excluir algo por engano ;-).
path = /usr/home/%u/share

Para usuários que já existam no sistema, é possível criar um Shell Script onde o mesmo fará a criação do diretório “share”, ajustará as permissões conforme desejado e tornará o usuário em questão dono do diretório. Segue abaixo como criar o Shell Script:

Entrando no diretório home dos usuários:

# cd /usr/home

Criando o arquivo “cria_share.sh” com o editor de texto padrão, no meu caso o ee:

# ee cria_share.sh

Segue abaixo o conteudo que deve existir no arquivo a ser criado chamado “cria_share.sh”:

#!/bin/sh
# Script utilizado para criar o diretorio de nome share dentro do HOME de
# cada usuario no sistema;
echo " "
echo "..:: Iniciando a execucao do script, por favor aguarde ..."
echo " "
cd /usr/home
for i in *; do
mkdir $i/share 2> /dev/null
chmod -R 1700 /usr/home/$i/share 2> /dev/null
chown -R $i /usr/home/$i/share 2> /dev/null
done
echo " ..:: Tarefas realizadas com sucesso ::.. "

Observação: Lembrando que as entradas iniciadas com o caractere “#” trata-se de um comentário e não será interpretado pelo shell no sistema.

Após inserir o conteudo, basta salvar o arquivo e executa-lo, conforme exemplo abaixo:

# sh /usr/home/cria_share.sh

# Após criada a pasta share que será compartilhada para cada usuário, a linha abaixo especifica (garante) que a pasta somente ficara acessivel apenas para o próprio usuário, ou seja, somente o usuário com as credências do dono da pasta poderá acessa-la e mais ninguém (exceto o usuário root, que tem permissões em tudo ;-));
valid users = %S

# Habilita a permissão de escrita;
read only = no

# Opções que ajustam as permissões dos arquivos e diretórios inseridos/criados dentro do compartilhamento em questão. Vale lembrar que a permissão mais restritiva (geralmente a imposta no FileSystem do sistema) tem precedência sobre essas entradas do SAMBA:
create mask = 1700
directory mask = 1700

# Em conjunto com a opção “valid users”, especifica que o compartilhamento somente será visivel e acessivel pelo usuário dono em questão;
browseable = no

[arquivos]
# Comentário para o compartilhamento;
comment = Arquivos Compartilhados pelo Samba Server

# Caminho do diretorio a ser compartilhado localizado no FileSytem do FreeBSD;
path = /arquivos_samba

# Usuários válidos ou que terão permissão para acesso ao compartihamento em questão. Atenção, esse usuário deve estar cadastrado no sistema e tambem na base de dados do SAMBA. Devem obrigatoriamente terem o mesmo nome de usuário:
valid users = danilo danilo2

# Especifica que o compartilhamento não é publico e exige credencias para poder acessa-lo. Essa é uma opção importante e deve ser configurada para restringir o acesso ao compartilhamento em questão;
public = no
printable = no

# Autoriza a leitura e gravação no compartilhamento. Note que essa é apenas uma permissão concedida pelo SAMBA. Caso o diretorio que esteje sendo compartilhado não possua permissões de gravação e escrita para um usuário especifico, a escrita ou leitura do mesmo não será possível;
writeable = yes

# Faz com que o compartilhamento esteja visivel. Caso o valor “no” seja inserido, o compartilhamento ira desaparecer, ou seja, ficara indisponivel para acesso (utel em casos de manutenção ou alteração de configuração em um único compartilhamento);
available = yes

# Opção que faz com que o compartilhamento fique oculto ou não. Quando com o valor “yes” define que o compartilhamento ficara vizivel e, quando com o valor “no” significa que o mesmo ficara oculto, porem acessivel atraves de seu nome de compartilhamento;
browseable = yes

# Permissões que os novos arquivos que forem inseridos nesse compartilhamento terão. Tenha em mente que as configurações de permissão do Filesystem tem privilegios sobre essa configuração do SAMBA, ou seja, se a configuração de permissão do Filesystem for mais restritiva que a do SAMBA, a do Filesystem tem privilegio e será utilizada;
create mask = 644

# Proibe que sejam inseridos arquivos com as extensões listadas abaixo nesse compartilhamento;
veto files = /*.bat/*.exe/*.msi/

# Essa opção adiciona um modulo a mais ao servidor SAMBA. Com ela, podemos ativar o uso de uma lixeira no SAMBA, ou seja, um local para onde arquivos excluídos do compartilhamento irão ser armazenados. Detalhe: Essas opções sobre a lixeira podem ser inseridas na seção Global no arquivo de configuração do SAMBA (para que todos os compartilhamentos tenham uma pasta de lixeira), ou inserido em um único compartilhamento em especifico (para que somente o mesmo tenha uma lixeira – nesse caso, vou utilizar essa segunda opção).
vfs objects = recycle

# Essa opção da lixeira, faz com que os arquivos que forem deletados não fiquem misturados no diretório raiz da lixeira. Com essa opção, os arquivos são organizados de uma forma que facilita a identificação do mesmo, caso necessário;
recycle:keeptree = yes

# A opção da lixeira “recycle:versions = yes”, faz com que o SAMBA mantenha diferentes versões de um arquivo excluído, em vez de manter a ultima versão do mesmo. Os arquivos repetidos passarão a ter uma nomenclatura conforme exemplo abaixo:
“Copy #1 Samba.sxw”;
“Copy #2 Samba.sxw”; Etc...
recycle:versions = yes

# Podemos organizar e centralizar todas as lixeiras em uma única partição de disco ou em um único diretório. Nesse caso, estamos configurando para que as lixeiras dos usuários sejam armazenadas no diretório /var/spool/samba/trash. A variavel do SAMBA “%U” que aparece no final do caminho absoluto do arquivo significa que será criado uma pasta com o nome de cada usuário do sistema, com o objetivo de que cada usuário tenha sua pasta de lixeira e apenas o mesmo consiga acessa-la (ou seja, os demais usuários não conseguirão acesso a mesma).
recycle:repository = /var/spool/samba/trash/%U

Observação: O diretório /var/spool/samba/trash não existe por default. Com isso, é necessário realizar a criação da mesma manualmente e definir as permissões de modo que todos os usuários tenham permissões de escrita na pasta “Trash” para que possam manipular seus arquivos na lixeira, como excluir, etc. Segue abaixo respectivamente, como criar o diretório e como definir as devidas permissões ao mesmo:

# mkdir /var/spool/samba/trash
# chmod -R 1777 /var/spool/samba/trash


Observação 2: Após criado o diretório e definida as devidas permissões, é necessário criar um outro compartilhamento no SAMBA, especificando o caminho onde a lixeira (ou melhor, onde o diretório que servirá de lixeira está localizado). Segue abaixo como deve ser criado o compartilhamento no arquivo de configuração do SAMBA:

[lixeira]
comment = Lixeira do SAMBA para o compartilhamento arquivos
path = /var/spool/samba/trash/%U
writable = yes

Observação 3: Não esquecer de inserir a variavel “%U” no compartilhamento, pois é ela quem vai criar as pastas de cada usuário dentro do diretório /var/spool/samba/trash.

# Ambas as entradas servem para especificar que determinadas extensões de arquivos e nomes de diretórios não devem ficar gravados na lixeira, como no caso são extensões de arquivos e diretórios de arquivos temporários, que podem ser gerados com as movimentações de leitura e escrita nos diretórios. Com isso, esses tipos de arquivos e diretórios serão excluídos da lixeira;
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso
recycle:exclude_dir = tmp, cache

Para que todas as alterações entram em funcionamento, salve o arquivo de configuração do SAMBA (/usr/local/etc/smb.conf) e reinicie o daemon do SAMBA.
Página anterior     Próxima página

Páginas do artigo
   1. Cenário utilizado
   2. Manipulando o daemon do SAMBA
   3. Adicionando usuários para acesso aos Recursos
   4. Acessando o CUPS através de um host da Rede Local
Outros artigos deste autor

Anon-Proxy no Debian Lenny

Servidor SSH (Secure Shell Hosting)

Configuração de servidor DHCP no Debian Linux

Leitura recomendada

Migrando servidores Linux para autenticação LDAP

Configurando o Samba de maneira simples e funcional

Montando um compartilhamento com o smbmount

Samba e as "vulnerabilidades" encontradas

Samba: Implementando um domínio

  
Comentários
[1] Comentário enviado por danilorpneves em 29/06/2011 - 15:42h

mandou bemm...parabéns :D

[2] Comentário enviado por danchiacchio em 29/06/2011 - 22:38h

Boa Noite danilo neves,

Que bom que gostou, fico feliz.

Abraço,
Danilo.

[3] Comentário enviado por turad em 02/08/2011 - 12:43h

Bom tutorial parabéns

[4] Comentário enviado por leandromfacchini em 07/09/2011 - 15:05h

Boa tarde, to com um problema na hora de achar o diretorio do samba eu faço #cd /usr/ports/net/samba3, e ele retorna a mensagem: no such file or directory, quem puder me ajudar agradeço.

[5] Comentário enviado por danchiacchio em 07/09/2011 - 17:02h

Boa Tarde leandromfacchini,

Se estiver utilizando a versão 8.1 ou 8.2 Release do FreeBSD, tente o seguinte:

# cd /usr/ports/net/samba35

Abraço,
Danilo.

[6] Comentário enviado por leandromfacchini em 08/09/2011 - 01:02h

deu certo, o problema era com o diretorio ports que não estava configurado corretamente, vlw pela dica.

att.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts