Samba é uma reimplementação livre e de código aberto do protocolo de compartilhamento de arquivos de rede SMB/CIFS que permite aos usuários finais acessar arquivos, impressoras e outros recursos compartilhados.
Neste tutorial, mostraremos como instalar o Samba no CentOS 7 e configurá-lo como um servidor autônomo para fornecer compartilhamento de arquivos entre diferentes sistemas operacionais através de uma rede.
Criaremos os seguintes compartilhamentos de Samba e usuários.
Usuários:
- sadmin – Um usuário administrativo com acesso de leitura e escrita a todos os compartilhamentos.
- josh – Um usuário regular com seu próprio compartilhamento de arquivos privados.
Shares:
- usuários – Este compartilhamento será acessível com permissões de leitura/escrita por todos os usuários.
- josh – Esta partilha será acessível com permissões de leitura/escrita apenas pelos utilizadores josh e sadmin.
As partilhas de ficheiros serão acessíveis a partir de todos os dispositivos na sua rede. Mais tarde no tutorial, nós também forneceremos instruções detalhadas sobre como se conectar ao servidor Samba a partir de clientes Linux, Windows e macOS.
Prrequisitos #
Antes de começar, certifique-se de estar logado no seu sistema CentOS 7 como um usuário com privilégios sudo .
Instalando Samba no CentOS #
Samba está disponível a partir dos repositórios CentOS padrão. Para instalá-lo em seu sistema CentOS execute o seguinte comando:
sudo yum install samba samba-client
Após a instalação estar concluída, inicie os serviços Samba e habilite-os para iniciar automaticamente no boot do sistema:
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
O serviço smbd
fornece serviços de compartilhamento de arquivos e impressão e escuta nas portas TCP 139 e 445. O serviço nmbd
fornece serviços de nomeação NetBIOS sobre IP para clientes e escuta na porta UDP 137.
Configurando Firewall #
Agora que o Samba esteja instalado e em execução na sua máquina CentOS, você precisará configurar seu firewall e abrir as portas necessárias. Para fazer isso, execute os seguintes comandos:
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba
Criar Usuários Samba e Estrutura de Diretórios #
Para facilitar a manutenção e flexibilidade ao invés de usar os diretórios home padrão (/home/user
) todos os diretórios e dados do Samba estarão localizados no diretório /samba
.
Comece criando o diretório /samba
:
sudo mkdir /samba
Criar um novo grupo chamado sambashare
. Mais tarde adicionaremos todos os usuários Samba a este grupo.
sudo groupadd sambashare
Configuração do grupo /samba
diretório propriedade do grupo para sambashare
:
sudo chgrp sambashare /samba
Samba usa usuários Linux e sistema de permissão de grupo, mas tem seu próprio mecanismo de autenticação separado da autenticação padrão do Linux. Vamos criar os usuários usando a ferramenta padrão Linux useradd
e então definir a senha do usuário com o utilitário smbpasswd
> utilitário.
Como mencionamos na introdução, vamos criar um usuário regular que terá acesso ao seu compartilhamento de arquivos privados e uma conta administrativa com acesso de leitura e escrita a todas as ações no servidor Samba.
Criar Usuários Samba #
Para criar um novo usuário chamado josh
, use o seguinte comando:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
As opções useradd
têm os seguintes significados:
Criar o diretório home do usuário e definir a propriedade do diretório para o usuário josh
e grupo sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
O seguinte comando irá adicionar o bit setgid ao diretório /samba/josh
para que os novos arquivos criados neste diretório herdarão o grupo do diretório pai. Desta forma, não importa qual usuário cria um novo arquivo, o arquivo terá o dono do grupo de sambashare
. Por exemplo, se você não definir as permissões do diretório para 2770
e o usuário sadmin
criar um novo arquivo, o usuário josh
não será capaz de ler/gravar neste arquivo.
sudo chmod 2770 /samba/josh
Adicionar a conta de usuário josh
ao banco de dados Samba definindo a senha do usuário:
sudo smbpasswd -a josh
Você será solicitado a digitar e confirmar a senha do usuário.
New SMB password:Retype new SMB password:Added user josh.
Após a senha ser definida, habilite a conta Samba digitando:
sudo smbpasswd -e josh
Enabled user josh.
Para criar outro usuário, repita o mesmo processo de criação do usuário josh
.
Próximo, vamos criar um usuário e um grupo sadmin
. Todos os membros deste grupo terão permissões administrativas. Mais tarde se você quiser conceder permissões administrativas a outro usuário simplesmente adicione esse usuário ao grupo sadmin
.
Criar o usuário administrativo digitando:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
O comando acima também criará um grupo sadmin
e adicionará o usuário a ambos os grupos sadmin
e sambashare
.
Definir uma senha e habilitar o usuário:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
Próximo, crie o diretório Users
compartilhar:
sudo mkdir /samba/users
Definir a propriedade do diretório para o usuário sadmin
e grupo sambashare
:
sudo chown sadmin:sambashare /samba/users
Este diretório será acessível por todos os usuários autenticados. O seguinte comando configura o acesso de escrita/leitura aos membros do grupo sambashare
no diretório /samba/users
:
sudo chmod 2770 /samba/users
Configurando Ações do Samba #
Abrir o arquivo de configuração do Samba e anexar as seções:
sudo nano /etc/samba/smb.conf
As opções têm os seguintes significados:
-
e
– Os nomes das ações que você usará ao fazer login.
-
path
– O caminho para a ação. -
browseable
– Se a ação deve ser listada na lista de ações disponíveis. Ao definir parano
outros usuários não serão capazes de ver o compartilhamento. -
read only
– Se os usuários especificados na listavalid users
são capazes de escrever para este compartilhamento. -
force create mode
– Define as permissões para os arquivos recém-criados neste compartilhamento. -
force directory mode
– Define as permissões para os directórios recentemente criados nesta partilha. -
valid users
– Uma lista de utilizadores e grupos que têm permissão para aceder à partilha. Os grupos são prefixados com o símbolo@
.
Para mais informações sobre as opções disponíveis veja a página de documentação do arquivo de configuração do Samba.
Once done, reinicie os serviços do Samba com:
sudo systemctl restart smb.service
sudo systemctl restart nmb.service
Nas seções seguintes, mostraremos como se conectar a um compartilhamento do Samba a partir de clientes Linux, MacOS e Windows.
Conectar-se a um Samba Share a partir do Linux #
Os utilizadores do Linux podem aceder ao Samba Share a partir da linha de comandos, utilizando o gestor de ficheiros ou montar o Samba Share.
Usar o cliente smbclient #
smbclient
é uma ferramenta que lhe permite aceder ao Samba a partir da linha de comandos. O pacote smbclient
não está pré-instalado na maioria das distribuições Linux, portanto você precisará instalá-lo com o seu gerenciador de pacotes de distribuição.
Para instalar smbclient
no Ubuntu e Debian run:
sudo apt install smbclient
Para instalar smbclient
no CentOS e Fedora run:
sudo yum install samba-client
A sintaxe para aceder a uma partilha do Samba é a seguinte:
mbclient //samba_hostname_or_server_ip/share_name -U username
Por exemplo para conectar a um compartilhamento chamado josh
em um servidor Samba com endereço IP 192.168.121.118
como usuário josh
você executaria:
smbclient //192.168.121.118/josh -U josh
Você será solicitado a digitar a senha do usuário.
Enter WORKGROUP\josh's password:
Após você digitar a senha, você será conectado à interface de linha de comando do Samba.
Try "help" to get a list of possible commands.smb: \>
Montagem do Samba share #
Para montar um Samba share no Linux primeiro você precisa instalar o pacote cifs-utils
.
Em execução Ubuntu e Debian:
sudo apt install cifs-utils
Em execução CentOS e Fedora:
sudo yum install cifs-utils
Próximo, crie um ponto de montagem:
sudo mkdir /mnt/smbmount
Montagem do compartilhamento usando o seguinte comando:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
Por exemplo para montar um compartilhamento chamado josh
em um servidor Samba com endereço IP 192.168.121.118
como usuário josh
para o ponto de montagem /mnt/smbmount
que você executaria:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
Você será solicitado a digitar a senha do usuário.
Password for josh@//192.168.121.118/josh: ********
Usando GUI #
Arquivos, o gerenciador de arquivos padrão no Gnome tem uma opção integrada para acessar compartilhamentos Samba.
- Arquivos Abertos e clique em “Outros Locais” na barra lateral.
- Em “Conectar ao Servidor”, digite o endereço do compartilhamento Samba no seguinte formato
smb://samba_hostname_or_server_ip/sharename
. - Clique em “Connect” e aparecerá a seguinte tela:
- Selecione “Registered User”, digite o nome de usuário e senha do Samba e clique em “Connect”.
- Os arquivos no servidor do Samba serão mostrados.
Conectar a um Samba Share a partir de macOS #
Em macOS, pode aceder ao Samba Shares a partir da linha de comandos ou utilizando o Finder padrão do gestor de ficheiros macOS. Os passos seguintes mostram como aceder à partilha utilizando o Finder.
- Abrir “Finder”, seleccione “Go” e clique em “Connect To”.
- Em “Connect To”, introduza o endereço da partilha Samba no seguinte formato
smb://samba_hostname_or_server_ip/sharename
.
- Clique em “Connect” e aparecerá o seguinte ecrã:
- Seleccionar “Registered User”, introduza o nome de utilizador e palavra-passe do Samba e clique em “Connect”.
- Os ficheiros no servidor Samba serão mostrados.
Conectar a um Samba Share a partir do Windows #
Os utilizadores do Windows também têm uma opção para se ligarem ao Samba Share a partir da linha de comandos e da GUI. Os passos abaixo mostram como aceder à partilha usando o Explorador de Ficheiros do Windows.
- Abrir o Explorador de Ficheiros e no painel esquerdo clique com o botão direito do rato em “Este PC”.
- Seleccionar “Escolher uma localização de rede personalizada” e depois clique em “Seguinte”.
- Em “Internet ou endereço de rede”, introduza o endereço da partilha do Samba no seguinte formato
\samba_hostname_or_server_ip\sharename
.
- Clique em “Next” (Próximo) e ser-lhe-á pedido que introduza as credenciais de início de sessão como mostrado abaixo:
- Na janela seguinte, pode digitar um nome personalizado para a localização da rede. O nome padrão será capturado pelo servidor Samba.
- Clique em “Next” para passar para a última tela do assistente de configuração da conexão.
- Clique em “Finish” e os arquivos no servidor Samba serão mostrados.
Conclusion #
Neste tutorial, você aprendeu como instalar um servidor Samba no CentOS 7 e criar diferentes tipos de compartilhamento e usuários. Nós também mostramos como se conectar ao servidor Samba a partir de dispositivos Linux, MacOS e Windows.