Instalar Samba
Objectivo
O objectivo deste artigo é instalar um servidor samba que permite entre outras funcionalidades actuar como servidor de ficheiros, servidor de backup ou servidor de impressão, entre outros .
Partimos do principio que temos uma instalação base debian feita como descrita aqui.
Instalação
Para proceder á instalação basta dar o comando:
servidor# apt-get install samba
Durante este processo irá ser-nos solicitado o nome do grupo de trabalho ou dominio a que a máquina pertence
Configuração
A configuração do samba é feita através do ficheiro
/etc/samba/smb.conf
# [...]
#===Global Settings===
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = home
# server string is the equivalent of the NT Description field
server string = %h server
# [...]
No caso da máquina em questão poder ter várias interfaces de rede ou non caso de querermos garantir que o serviço só fica disponivel para a nossa rede local, configuramos o ficheiro através do parametro
interfaces para que o serviço apenas aceite ligações para o que estiver definido.
#### Networking ####
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0
# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = true
Partilhas Individuais
Por defeito o samba partilha toda a estrutura da directoria /home de cada um dos utilizadores, ou seja, cada utilizador por omissão, tem acesso a todos os ficheiros que tem na sua home, o que pode não ser desejavel, uma vez que estão incluidos ficheiros de configuração e possivelmente uma directoria do tipo Maildir onde estão os e-mails armazenados.
Podemos criar uma directoria especifica dentro da home do utilizador para partilha e armazenamento de documentos, não se misturando assim com os outros tipos de ficheiros e directorias existentes.
Podemos definir a criação dessa directoria automaticamente para quando criarmos um novo utilizador na máquina.
Tomemos como exemplo para o nome da directoria
Documents
servidor# mkdir /etc/skel/Documents; chmod 0700 /etc/skel/Documents
Definimos a seguir os parametros para as partilhas dos utilizadores, alterando o que vem por defeito e definindo o caminho para a directoria definida em cima permitindo a escrita na mesma.
#=== Share Definitions ===
[homes]
comment = Home Directories
path = /home/%S/Documents
browseable = no
# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
writable = yes
# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700
# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700
# Restrict access to home directories
# to the one of the authenticated user
# This might need tweaking when using external authentication schemes
valid users = %S
Para que a partilha fique disponivel é necessário adicionar o utilizador á base de dados de utilizadores do samba. Note-se que o utilizador já deve ter sido criado anteriormente no sistema.
servidor# smbpasswd -a prodrigues
New smb password:
Retype new smb password:
Partilhas comuns
Podemos criar partilhas acessíveis a todos os utilizadores ou a alguns utilizadores. O mesmo raciocinio pode ser aplicado para grupos.
Tomemos como exemplo a criação de uma pasta partilhada por todos os utilizadores.
servidor:~# mkdir -p /home/common/public
servidor:~# chgrp nogroup /home/common/public
servidor:~# chmod 0770 /home/common/public
De seguida, definimos a partilha no ficheiro de configuração do samba, definindo o caminho ( path ) para a directoria criada anteriormente no sistema. Note-se que a partilha vai permitir o acesso aos utilizadores e ao grupo nogroup (a mascara definida garante isso). Para que os utilizadores posssam aceder aos ficheiros uns dos outros, vamos forçar a criação dos mesmos no grupo nogroup.
# [...]
### public share ###
[public]
comment = Public Share
path = /home/common/public
public = yes
browseable = yes
writable = yes
create mask = 0770
directory mask = 0770
force group = nogroup
Validação da configuração
A validação da configuração é feita através do comando testparm e como uma boa prática deve ser feita sempre que procedemos a qualquer alteração no ficheiro /etc/samba/smb.conf.
servidor:~# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# [...]
Antes de procedermos ao teste numa estação de trabalho ( windows ou linux ) temos que reiniciar o serviço para que as alterações entrem em funcionamento.
servidor# /etc/init.d/samba restart
Teste e verificação
Para testarmos as partilhas usamos como cliente uma estação de trabalho windows XP.
Devemos ter como resultado depois de introduzir correctamente o username e password
--
Pedro Rodrigues - 19 Sep 2007