Product SiteDocumentation Site

11.5. Configurando um Compartilhamento Windows com o Samba

O Samba é um conjunto de ferramentas para lidar com o protocolo SMB (também conhecido como “CIFS”) no Linux. Esse protocolo é usado pelo Windows para compartilhamento de rede e impressoras compartilhadas.
Samba can also act as a Windows domain controller. This is an outstanding tool for ensuring seamless integration of Linux servers and the office desktop machines still running Windows.

11.5.1. Servidor Samba

O pacote samba contém os dois principais servidores do Samba 4, smbd e nmbd.

11.5.1.1. Configurando com debconf

The package sets up a minimal configuration during the initial installation by plainly copying /usr/share/samba/smb.conf. So you should really run dpkg-reconfigure samba-common to adapt it:
On first installation the only piece of required information is the name of the workgroup where the Samba server will belong (the answer is FALCOTNET in our case).
In case of a package update (from the old stable Debian version) or if the SMB server has already been configured to use a WINS server (wins server) the package also proposes identifying the WINS server from the information provided by the DHCP daemon. The Falcot Corp administrators rejected this option, since they intend to use the Samba server itself as the WINS server.

11.5.1.2. Configurando Manualmente

11.5.1.2.1. Mudanças no smb.conf
Os requerimentos na Falcot fazem necessário que outras opção sejam modificadas no arquivo de configuração /etc/samba/smb.conf. O trecho a seguir resumem as alterações que foram feitas na seção [global].
[...]

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = FALCOTNET

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
   wins support = yes 1

[...]

####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller". 
#
# Most people will want "standalone server" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server

   obey pam restrictions = yes

[...]

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server.
   security = user 2

[...]

1

Indicates that Samba should act as a Netbios name server (WINS) for the local network. This option has been removed from the default configuration in Buster and must be added manually if desired.

2

Esse é o valor padrão para esse parâmetro; contudo, como ele é central para a configuração do Samba, o recomendado é preenchê-lo explicitamente. cada usuário tem que se autenticar antes de acessar qualquer compartilhamento.
11.5.1.2.2. Adicionando Usuários
Cada usuário do Samba precisa ter uma conta no servidor; as contas Unix tem que ser criadas primeiro, depois o usuário precisa ser registrado no banco de dados do Samba. O passo no Unix é feito bem facilmente (usando o adduser por exemplo).
Adicionar um usuário existente ao banco de dados do Samba é uma questão de rodar o comando smbpasswd -a usuário; esse comando pergunta pela senha interativamente.
Um usuário pode ser apagado com o comando smbpasswd -x usuário. Uma conta Samba também pode ser temporariamente desabilitada (com smbpasswd -d usuário) e reabilitada mais tarde (com smbpasswd -e usuário).

11.5.2. Cliente Samba

Os recursos do cliente no Samba permitem que uma máquina Linux acesse compartilhamentos Windows e impressoras compartilhadas. Os programas necessários estão disponíveis nos pacotes cifs-utils e smbclient.

11.5.2.1. O Programa smbclient

O programa smbclient consulta servidores SMB. Ele aceita a opção -U usuário, para conectar em um servidor sob uma identidade específica. smbclient //servidor/compartilhamento acessa o compartilhamento de maneira interativa, similar a linha de comando de um cliente FTP. smbclient -L servidor lista todos os compartilhamentos disponíveis (e visíveis) em um servidor.

11.5.2.2. Montando Compartilhamentos Windows

O comando mount permite montar um compartilhamento Windows na hierarquia do sistema de arquivos do Linux (com a ajuda do mount.cifs fornecido pelo cifs-utils).

Exemplo 11.21. Montando um compartilhamento Windows

mount -t cifs //arrakis/shared /shared \
      -o credentials=/etc/smb-credentials
O arquivo /etc/smb-credentials (o qual não deve ser legível pelos usuários) tem o seguinte formato:
username = user
password = password
Outras opções podem ser especificadas pela linha de comando; sua lista completa está disponível na página de manual mount.cifs(1). Duas opções em particular podem ser interessantes: uid e gid permitem forçar o dono e grupo dos arquivos disponíveis na montagem, de modo a não restringir o acesso para o root.
A montagem de um compartilhamento Windows também pode ser configurada em /etc/fstab:
//servidor/shared /shared cifs credentials=/etc/smb-credentials
Desmontando um compartilhamento SMB/CIFS é feito com o comando padrão umount.

11.5.2.3. Imprimindo com uma Impressora Compartilhada

CUPS é uma solução elegante para impressão a partir de uma estação de trabalho Linux em uma impressora compartilhada por uma máquina Windows. Quando o smbclient está instalado, o CUPS permite a instalação de impressoras Windows compartilhadas automaticamente.
Aqui estão os passos necessários:
  • Entre na interface de configuração do CUPS: http://localhost:631/admin
  • Clique em "Adicionar Impressora".
  • Selecione o dispositivo de impressora, escolha “Impressora Windows via SAMBA”.
  • Insira a conexão URI para a impressora de rede. Deve se parecer com o seguinte:
    smb://usuário:senha@servidor/impressora.
  • Digite o nome que irá identificar de maneira única essa impressora. Em seguida digite a descrição e localização da impressora. Essas são as cadeias de caracteres que irão ser mostradas aos usuários finais para ajudá-los a identificar as impressoras.
  • Indicar o fabricante/modelo da impressora, ou fornecer diretamente um arquivo funcional de descrição da impressora (PPD).
Voilà, a impressora está operacional!