sudo apt install samba
A saída deve ser semelhante a abaixo, indicando que o serviço Samba está ativo e em execução:
● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service ...
Configurando firewall
Supondo que você esteja usando o UFW para gerenciar seu firewall, você pode abrir as portas ativando o perfil 'Samba':
sudo ufw allow 'Samba'
Configurando opções globais de samba
Antes de fazer alterações no arquivo de configuração do Samba, crie um backup para fins de referência futura:
sudo cp /etc/samba/smb.conf{, .backup}
O arquivo de configuração padrão que acompanha o pacote Samba está configurado para o servidor Samba independente. Abra o arquivo e verifique se a server role está definida como standalone server
sudo nano /etc/samba/smb.conf /etc/samba/smb.conf
... # Most people will want "standalone sever" 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 ...
Por padrão, o Samba escuta em todas as interfaces. Se você deseja restringir o acesso ao servidor Samba somente da sua rede interna, remova o comentário das duas linhas a seguir e especifique as interfaces às quais se vincular:
/etc/samba/smb.conf
... # 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 = yes ...
Depois de concluído, execute o utilitário testparm para verificar se há erros no arquivo de configuração do Samba. Se não houver erros de sintaxe, você verá o Loaded services file
Por fim, reinicie os serviços do Samba com:
sudo systemctl restart smbd sudo systemctl restart nmbd
Criando usuários do Samba e estrutura de diretórios
Para facilitar a manutenção e a flexibilidade, em vez de usar os diretórios pessoais padrão ( /home/user ), todos os diretórios e dados do Samba estarão localizados no diretório /samba .
Para criar o diretório /samba, digite:
sudo mkdir /samba
Defina a propriedade do grupo como sambashare . Este grupo é criado durante a instalação do Samba; posteriormente, adicionaremos todos os usuários do Samba a este grupo.
sudo chgrp sambashare /samba
O Samba usa usuários do Linux e sistema de permissão de grupo, mas possui seu próprio mecanismo de autenticação separado da autenticação padrão do Linux. Criaremos os usuários usando a ferramenta padrão useradd Linux e, em seguida, definiremos a senha do usuário com o utilitário smbpasswd .
Como mencionamos na introdução, criaremos um usuário comum que terá acesso ao seu compartilhamento de arquivos privado e uma conta administrativa com acesso de leitura e gravação a todos os compartilhamentos no servidor Samba.
Criando usuários do 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:
-M-não cria o diretório inicial do usuário. Criaremos este diretório manualmente.-d /samba/josh- define o diretório inicial do usuário como/samba/josh.-s /usr/sbin/nologin- desativa o acesso ao shell para este usuário.-G sambashare- adicione o usuário ao gruposambashare.Crie o diretório inicial do usuário e configure a propriedade do diretório para o usuário
joshe groupsambashare:sudo mkdir /samba/joshsudo chown josh:sambashare /samba/joshO comando a seguir adicionará o bit setgid ao diretório
/samba/josh, para que os arquivos recém-criados neste diretório herdem o grupo do diretório pai. Dessa forma, não importa qual usuário crie um novo arquivo, o arquivo terá o proprietário do grupo desambashare. Por exemplo, se você não definir as permissões do diretório para2770e o usuáriosadmincriar um novo arquivo, o usuáriojoshnão poderá ler / gravar neste arquivo.sudo chmod 2770 /samba/joshInclua a conta de usuário
joshno banco de dados Samba, configurando a senha do usuário:sudo smbpasswd -a joshVocê será solicitado a inserir e confirmar a senha do usuário.
New SMB password: Retype new SMB password: Added user josh.Depois que a senha é definida para ativar a conta do Samba, execute:
sudo smbpasswd -e joshEnabled user josh.Para criar outro usuário, repita o mesmo processo que ao criar o usuário
josh.Em seguida, vamos criar um usuário e um grupo
sadmin. Todos os membros deste grupo terão permissões administrativas. Posteriormente, se você quiser conceder permissões administrativas para outro usuário, adicione-o ao gruposadmin.O comando acima também criará um grupo
sadmine adicionará o usuário aos grupossambashareesambashare.Defina uma senha e habilite o usuário:
sudo smbpasswd -a sadminsudo smbpasswd -e sadminEm seguida, crie o diretório de compartilhamento
Users:sudo mkdir /samba/usersDefina a propriedade do diretório como usuário
sadmine groupsambashare:sudo chown sadmin:sambashare /samba/usersEste diretório estará acessível por todos os usuários autenticados. O comando
chmodseguir fornece acesso de gravação / leitura aos membros do gruposambashareno diretório/samba/users:
Configurando compartilhamentos Samba
Abra o arquivo de configuração do Samba e acrescente as seções:
sudo nano /etc/samba/smb.conf /etc/samba/smb.conf
path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin path = /samba/josh browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = josh @sadmin
As opções têm os seguintes significados:
e- Os nomes dos compartilhamentos que você usará ao fazer login.path- O caminho para o compartilhamento.browseable- se o compartilhamento deve ser listado na lista de compartilhamentos disponíveis. Ao definir comonooutro usuário, não será possível ver o compartilhamento.read only- se os usuários especificados na lista devalid userspodem gravar neste 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 diretórios recém-criados neste compartilhamento.valid users- Uma lista de usuários e grupos que têm permissão para acessar o compartilhamento. Os grupos são prefixados com o símbolo@.Para obter mais informações sobre as opções disponíveis, consulte a página de documentação do arquivo de configuração do Samba.
Depois de concluído, reinicie os serviços do Samba com:
sudo systemctl restart smbdsudo systemctl restart nmbdNas seções a seguir, mostraremos como conectar-se a um compartilhamento Samba de clientes Linux, macOS e Windows.
Conectando a um compartilhamento Samba do Linux
Os usuários do Linux podem acessar o compartilhamento samba na linha de comando, usando o gerenciador de arquivos ou montar o compartilhamento Samba.
smbclient é uma ferramenta que permite acessar o Samba a partir da linha de comando. O pacote smbclient não está pré-instalado na maioria das distribuições Linux, portanto, você precisará instalá-lo com o gerenciador de pacotes de distribuição.
Para instalar o smbclient no Ubuntu e Debian, execute:
sudo apt install smbclient
Para instalar o smbclient no CentOS e no Fedora, execute:
sudo yum install samba-client
A sintaxe para acessar um compartilhamento Samba é a seguinte:
mbclient //samba_hostname_or_server_ip/share_name -U username
Por exemplo, para conectar-se 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 inserir a senha do usuário.
Enter WORKGROUP\josh's password:
Depois de inserir a senha, você será conectado à interface da linha de comando do Samba.
Try "help" to get a list of possible commands. smb: \>
Montando o compartilhamento Samba
Para montar um compartilhamento Samba no Linux primeiro, você precisa instalar o pacote cifs-utils .
No CentOS e no Fedora, execute:
sudo yum install cifs-utils
Em seguida, crie um ponto de montagem:
sudo mkdir /mnt/smbmount
Monte o 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 no ponto de montagem /mnt/smbmount você executaria:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
Você será solicitado a inserir a senha do usuário.
Password for josh@//192.168.121.118/josh: ********
Usando GUI
Arquivos, o gerenciador de arquivos padrão no Gnome possui uma opção embutida para acessar os compartilhamentos do Samba.
- Abra Arquivos 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/sharenameClique em "Connect" e a seguinte tela será exibida:








