quarta-feira, 18 de novembro de 2020

Ubuntu Samba instalar

 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 grupo sambashare .
  • Crie o diretório inicial do usuário e configure a propriedade do diretório para o usuário josh e group sambashare :

    sudo mkdir /samba/josh sudo chown josh:sambashare /samba/josh

    O 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 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 poderá ler / gravar neste arquivo.

    sudo chmod 2770 /samba/josh

    Inclua a conta de usuário josh no banco de dados Samba, configurando a senha do usuário:

    sudo smbpasswd -a josh

    Você 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 josh

    Enabled 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 grupo sadmin .

  • O comando acima também criará um grupo sadmin e adicionará o usuário aos grupos sambashare e sambashare .

    Defina uma senha e habilite o usuário:

    sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin

    Em seguida, crie o diretório de compartilhamento Users :

    sudo mkdir /samba/users

    Defina a propriedade do diretório como usuário sadmin e group sambashare :

    sudo chown sadmin:sambashare /samba/users

    Este diretório estará acessível por todos os usuários autenticados. O comando chmod seguir fornece acesso de gravação / leitura aos membros do grupo sambashare no diretório /samba/users :

sudo chmod 2770 /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:

  • - 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 como no outro usuário, não será possível ver o compartilhamento. read only - se os usuários especificados na lista de valid users podem 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 smbd sudo systemctl restart nmbd

    Nas 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.

  1. 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/sharename Clique em "Connect" e a seguinte tela será exibida: