Ao montar um compartilhamento de rede com Debian 7, me deparei com alguns problemas, todos os tutoriais que têm na Internet, são de sistemas antigos. Ex.: mudou muita coisa do Debian 6 para o Debian 7.
Vamos lá!
Primeiramente, vamos instalar o
Samba no
Ubuntu ou
Debian6/7 (se estiver usando Ubuntu, logue como usuário normal, e use o comando
sudo em todos os comandos. Se estiver usando Debian, logue-se como
root):
# apt-get upadate && apt-get install samba
Obs.: o sistema irá pedir a confirmação da instalação.
Configurando o Samba
Vamos fazer uma cópia do arquivo de configuração, só por segurança:
# cd /etc/samba/
# mv smb.conf smb.conf.old
Agora, vamos criar um novo arquivo de configuração (dentro do diretório
/etc/samba):
# nano smb.conf
Abaixo, irei explicar o que faz em cada linha:
Obs.: configuração baseada nos tutoriais:
#Define a classe "global"
[global]
#Grupo de trabalho
workgroup = WORKGROUP
#Nome que será exibido na rede
netbios name = Servidor de arquivos Samba
#Nome do servidor
server string =
Linux
#Level do OS (pode deixar 33 que funciona)
os level = 33
#Arquivo de log, abaixo irei explicar como criar um log personalizado
log file = /var/log/samba/samba.log
#Level do log: (de 0 a 10), sendo que o nível 0 mostra apenas mensagens críticas, o nível 1 mostra alguns detalhes sobre os acessos e os demais mostram diversos níveis de informações de debug, úteis a desenvolvedores, se quiser um log completo, até de erros nos acessos das máquinas clientes deixe 10
log level = 10
#Valor máximo para o arquivo de log
max log size = 10000
#Nível de debug do sistema
debug level = 2
#Segurança de acesso, deixe "user" para solicitar usuário e senha, "share" para não pedir
security = user
#Define se vai ser o servidor padrão da rede, deixe "false"
domain master = false
#Ativa módulos: full_audit = logs, recycle = lixeira
vfs objects = full_audit, recycle
#Se não deseja ter logs ou lixeira basta remover o nome do módulo e os arquivos de configuração do mesmo
###Início da configuração de log
#O próximo passo é definir quais operações devem ser logadas:
# open = abriu arquivo
# opendir = abriu diretório
# write = escreveu arquivo
# unlink = excluiu arquivo
# rename = renomeou arquivo
# mkdir = criou diretório
# rmdir = excluiu diretório
# chmod = editou permissões do diretório/arquivo
# chown = mudou o dono de um arquivo
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown
#Usando a opção "full_audit:prefix".
#Aqui podemos utilizar algumas variáveis como:
# %u = o nome do usuário
# %I = o IP da máquina
# %S = o nome do compartilhamento onde foi feito o acesso ou a alteração
full_audit:prefix = %u|%I|%S
#Por padrão, o módulo loga não apenas os acessos e modificações, mas também um grande volume de mensagens de alerta e erros gerados durante a operação. A opção "full_audit:failure = none" evita que estas mensagens sejam logadas, fazendo com que o log fique muito mais limpo e seja mais fácil encontrar as opções que realmente interessam
full_audit:failure = none
#Especificamos o nível dos alertas, entre os suportados pelo syslog
full_audit:facility = local5
full_audit:priority = notice
###Fim configuração de log
###Início configuração da lixeira
#Lembrando que o "vfs objects" deve conter o modulo: "recycle"
#Não deixa que os arquivos fiquem misturados, cria o caminho certo de onde o arquivo foi excluído
recycle:keeptree = yes
#Não sobrescreve os arquivos deletados, criar diferentes nomes. Exemplo: arquivo, arquivo2, arquivo3...
recycle:versions = yes
#Aqui podemos colocar os arquivos em um diretório, ou podemos deixar apenas na lixeira, que ele cria no diretório raiz de cada compartilhamento
recycle:repository = /var/samba/trash/
#Aqui ignoramos alguns arquivos, porque não há necessidade de deixar os mesmos salvos como um "backup" e ocupar espaço em disco
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.iso
#Mesma coisa, mas neste caso são pastas não importantes
recycle:exclude_dir = tmp, cache
###Fim configuração da lixeira
#Obs.: estas configurações se aplicam a todo compartilhamento, para criar configurações específicas para cada compartilhamento retire da opção "global" e coloque em cada seção de compartilhamento, que será explicado abaixo
#Agora vamos configurar os compartilhamento, irei criar dois como exemplos
#Nome do compartilhamento: Usuario
[Arquivos Usuario]
#Comentário para o compartilhamento
comment = Arquivos Usuario
#Diretório para o compartilhamento
path = /home/server/files/usuario
#Usuários que poderão acessar o compartilhamento. Obs.: os usuários devem estar no sistema também. Abaixo explicarei como adicionar os usuários
#Vamos supor que esta empresa tenha três usuários:
valid users = william, joao, maria #Os três usuários poderão ter acesso
#Informa se o compartilhamento é público
public = no
#Permite somente conexões guest ao recurso. O UID do usuário é mapeado para guest mesmo que forneça uma senha correta
guest only = no
#Informa se o compartilhamento será "somente leitura" assim não podendo deletar, criar ou renomear arquivos e pastas
read only = no
#Define se o compartilhamento será ou não exibido
browseable = yes
#Define se será possível "escrever" no compartilhamento
writable = yes
#Solicita que o Samba force o tipo de permissão dos arquivos criados
force create mode = 777
#Mesmo que force create mode, mas para diretórios criados nos compartilhamentos
force directory mode = 777
#Nome do compartilhamento (financeiro)
[Arquivos Financeiro]
#Comentário para o compartilhamento
comment = Arquivos Financeiro
#Diretório para o compartilhamento
path = /home/server/files/financeiro
#Usuários que poderão acessar o compartilhamento.
#Obs.: os usuários devem estar no sistema também, abaixo explicarei como adicionar os usuários
valid users = william, maria
#Apenas o usuário "william" e o usuário "maria" poderão acessar este compartilhamento enquanto que o usuário "joao" não
#Informa se o compartilhamento é público
public = no
#
Permite somente conexões guest ao recurso. O UID do usuário é mapeado para guest mesmo que forneça uma senha correta
guest only = no
#Informa se o compartilhamento será "somente leitura" assim não podendo deletar, criar ou renomear arquivos e pastas
read only = no
#Define se o compartilhamento será ou não exibido
browseable = yes
#Define se será possível "escrever" no compartilhamento
writable = yes
#Solicita que o Samba force o tipo de permissão dos arquivos criados
force create mode = 777
#Mesmo que force create mode, mas para diretórios criados nos compartilhamentos
force directory mode = 777
#Obs.: para mostrar a lixeira junto na rede crie um novo compartilhamento informando o diretório da lixeira
Configurando Syslog
Agora, vamos configurar o
syslog do sistema para executar os logs do Samba.
Abra o arquivo
/etc/syslog.conf se estiver usando Ubuntu ou Debian até a versaõ 6. Se estiver usando o Debian 7, o arquivo é
/etc/rsyslog.conf.
Insira esta linha no final do arquivo:
local5.notice /var/log/samba-full_audit.log
Note que o
local5.notice corresponde aos valores informados nas opções
full_audit:facility e
full_audit:priority. Enquanto o
/var/log/samba-full_audit.log é o arquivo de log que será gerado.
Em seguida, iremos criar os diretórios:
# mkdir /home/server/files/usuario && mkdir /home/server/files/financeiro
Agora, iremos dar permissão total a esses diretórios:
# chmod 777 /home/server && chmod 777 /home/server/files && chmod 777 /home/server/files/usuario && chmod 777 /home/server/files/financeiro
Ainda temos que criar os usuários: william, maria e joao:
# adduser william
Informe a senha e outras informações conforme o servidor pedir. Faremos igual para os outros dois:
# adduser maria
# adduser joao
Agora, temos de adicioná-los ao Samba:
# smbpasswd -a william
Informe a senha para usuário.
Obs.: a senha deve ser igual à criada anteriormente, para evitarmos negação de direito nos diretórios.
O mesmo para os outros dois:
# smbpasswd -a maria
# smbpasswd -a joao
Se desejar que os usuários não possam logar no sistema do servidor via SSH, ou pelo próprio sistema, vamos inativar o acesso deles ao sistema com o comando
usermod.
Onde:
- -L = LOCK (bloqueia)
- -U = UNLOCK (desbloqueia)
# usermod -L william
# usermod -L maria
# usermod -L joao
Para liberar o acesso, basta trocar o
-L por
-U.
Depois de concluída toda a configuração, reinicie os serviços e o compartilhamento passará a funcionar imediatamente:
# service samba restart
Devemos reiniciar o serviço de log também:
# service rsyslog restart
Fazendo assim, deverá funcionar, configurei o meu desse mesmo jeito. Se der algum problema, ou alguma coisa não está como você queria, revise o tutorial.
Obs.: a dica abaixo foi retirada de:
Acessando arquivos de log
Para acessar os arquivos de log, configuramos o arquivo para ser gerado em
/var/log/samba-full_audit.log.
Dentro do arquivo, você verá entradas contendo a data e hora, o usuário, o IP da máquina, o nome do compartilhamento, a operação realizada e o nome do arquivo, ou pasta, onde ela foi realizada, como em:
Nov 18 15:21:15 m5 smbd_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
Nov 18 15:21:34 m5 smbd_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 usuários e máquinas, mas, é fácil ver apenas as entradas referentes a um determinado usuário, compartilhamento, endereço IP ou outro parâmetro qualquer, ao listar o arquivo pelo terminal usando o
grep, que permite mostrar apenas as linhas contendo determinados trechos de texto, como em:
Mostra os acessos provenientes do usuário joao:
# cat /var/log/samba-full_audit.log | grep joao
Acessos feitos ao compartilhamento "financeiro", por parte de qualquer usuário:
# cat /var/log/samba-full_audit.log | grep |financeiro|
Dica: adicione "
> arquivos.log" no final de cada linha anterior, para copiar o log para um arquivo externo.
Dúvidas ou problemas postem nos comentários abaixo.
Abraço...
Fontes: