Objectivo
A instalação de um servidor samba permite, entre outras funcionalidades, a partilha de ficheiros com sistemas Windows.
Instalação
server:~# aptitude install samba
Durante a instalação será solicitado o nome do grupo de trabalho ou domínio a que o servidor pertence:
Configuração
Toda a configuração do serviço samba é feita no ficheiro /etc/samba/smb.conf.
Configuração global
# [...]
#======================= 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
# [...]
Segurança
Por segurança, é possível limitar o acesso ao servidor samba a apenas alguns segmentos da rede. Assim, para garantir que o servidor de ficheiros só estará disponível para a rede local, são listadas as interfaces de rede do próprio sistema (lo) e da rede local (eth0), instruindo o serviço a aceitar ligações apenas por essas interfaces:
#### 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
Deste modo, o serviço samba só aceitará ligações do próprio servidor (lo) ou através da interface de rede eth0.
Partilha por utilizador
A configuração por omissão do samba partilha toda a estrutura de directoria /home de cada utilizador. Isto significa que todos os ficheiros, tais como os ficheiros de configuração e os ficheiros da directoria Maildir (onde estão todas as mensagens de email) estariam também partilhados, o que não é desejável. Por isso será criada uma directoria exclusivamente para as partilhas samba dentro da home de cada utilizador. Para que a directoria seja criada automaticamente quando for criado um novo utilizador, é adicionada à arborescência em /etc/skel, com direitos de acesso exclusivos para próprio utilizador:
server:~# mkdir /etc/skel/Documents; chmod 0700 /etc/skel/Documents
No entanto, a directoria de partilha deverá ser criada para cada utilizador já existente:
server:~# su - fribeiro -c 'mkdir ~/Documents; chmod 0700 ~/Documents'
Em seguida são definidos os parâmetros das partilhas dos utilizadores, indicando o caminho para a directoria das partilhas individuais e permitindo o acesso em escrita:
# [...]
#======================= Share Definitions =======================
[homes]
comment = Home Directories
path = /home/%S/Documents
browseable = no
# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = no
# [...]
Criação de utilizadores
Deverão também ser criados os utilizadores e atribuídas as respectivas senhas na base de dados dos utilizadores do samba:
server:~# smbpasswd -a fribeiro
New SMB password:
Retype new SMB password:
Partilhas comuns
É possível definir também partilhas acessíveis a todos os utilizadores, criando um espaço comum de troca e armazenamento de ficheiros. Em primeiro lugar deve ser criada uma directoria para o armazenamento de ficheiro. Essa directoria dever ter direitos de acesso limitados ao utilizador e um grupo chamado nogroup:
server:~# mkdir -p /home/common/public
server:~# chgrp nogroup /home/common/public
server:~# chmod 0770 /home/common/public
Em seguida, deverá ser definida a partilha no ficheiro de configuração do samba, em que é definido o caminho para a directoria de partilha, e que a máscara de criação de ficheiros e directorias permitirá o acesso aos próprios utilizadores e ao grupo nogroup. Finalmente é forçada a criação de ficheiros no grupo nogroup para que os utilizadores possam aceder sem restrições a todos os ficheiros. Todas as alterações são feitas no ficheiro /etc/samba/smb.conf:
# [...]
### 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 sintaxe do ficheiro de configuração deve ser verificada:
server:~# 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
# [...]
Finalmente, reiniciar o serviço:
server:~# /etc/init.d/samba restart
Verificação
Num PC da rede local deverá ser possível aceder à partilha de ficheiros do servidor:
E o resultado final será:
Referências
- Samba (http://www.samba.org)
- Samba Documentation: (http://www.samba.org/samba/docs)
- Wikipedia: Samba (http://pt.wikipedia.org/wiki/Samba_%28servidor%29)




















