Configuração Avançada de Servidor Samba e Montagem CIFS Multiusuário

Para implementar o cenário proposto, utilizaremos duas máquinas virtuais: server1.example.com atuando como provedor de arquivos e server2.example.com como estação cliente. O objetivo é configurar dois compartilhamenots com políticas de acesso distintas, aplicar restrições de rede e montar um dos volumes de forma persistente, permitindo a troca dinâmica de credenciais no lado do cliente.

  1. Compartilhamento Básico com Restrição de Domínio

O primeiro requisito consiste em expor o diretório /common com o identificador common. O servidor deve integrar-se ao grupo de trabalho STAFF, permitir navegação de diretórios, restringir conexões à sub-rede do domínio example.com e conceder permissões estritas de leitura ao usuário marry.

Primeiro, provisionamos a conta do sistema e configuramos as credenciais no banco de dados Samba, bloqueando o login interativo por segurança:

useradd -r -s /usr/sbin/nologin marry
smbpasswd -a marry

Em seguida, garantimos que o sistema de arquivos local respeite a política de leitura. Utilizamos ACLs para assegurar que a permissão de diretório esteja alinhada com a configuração do serviço:

mkdir -p /common
setfacl -m u:marry:r-x /common

A configuração principal reside em /etc/samba/smb.conf. Definimos o grupo de trabalho, as permissões de rede e a seção do compartilhamento:

[global]
    workgroup = STAFF
    hosts allow = 192.168.35. 127.

[common]
    path = /common
    browseable = yes
    valid users = marry
    read only = yes

Após aplicar as alterações, reiniciamos os serviços de gerenciamento de nomes e compartilhamento para que as regras sejam efetivas:

systemctl restart smb nmb
systemctl enable smb nmb

Na estação cliente, a validação pode ser realizada utilizando o utilitário de linha de comando smbclient:

smbclient //192.168.35.142/common -U marry
# Ao acessar o prompt smb:\> , o comando ls exibirá os conteúdos permitidos.
  1. Compartilhamento com Controle de Acesso Granular e Montagem Persistente

O segundo cenário exige a exposição de /storage como share, navegável, com permissões diferenciadas: jim com acesso de leitura e bob com leitura e gravação. Este volume deve ser montado permanentemente em /mnt/smb no cliente, utilizando as credenciais de jim como padrão, mas permitindo que qualquer usuário local assuma temporariamente as permissões de bob.

No servidor, criamos as contas e definimos suas senhas no repositório Samba:

useradd -r -s /usr/sbin/nologin jim
useradd -r -s /usr/sbin/nologin bob
smbpasswd -a jim
smbpasswd -a bob

Ajustamos as permissões do sistema de arquivos para refletir o modelo de acesso desejado, garantindo que o kernel Linux não bloqueie operações que o Samba autorize:

mkdir -p /storage
setfacl -m u:jim:r-x /storage
setfacl -m u:bob:rwx /storage

Adicionamos a nova seção ao arquivo de configuração. A diretiva write list garante que apenas bob possa modificar dados, enquanto jim mantém acesso restrito à leitura:

[share]
    path = /storage
    browseable = yes
    valid users = jim, bob
    read only = yes
    write list = bob

Recarregamos o serviço para aplicar as regras:

systemctl restart smb

No cliente, configuramos a montagem automática editando o arquivo /etc/fstab. Utilizamos o sistema de arquivos CIFS com autenticação inline e protocolo moderno para compatibilidade:

//192.168.35.142/share /mnt/smb cifs username=jim,password=redhat,vers=3.0,sec=ntlmssp 0 0

Após editar o arquivo, executamos o recarregamento do geranciador de serviços e aplicamos as montagens pendentes:

systemctl daemon-reload
mount -a

Para permitir que usuários locais alterne dinamicamente o contexto de acesso para as credenciais de bob sem necessidade de remontar o ponto, utilizamos a ferramenta cifscreds (disponível no pacote cifs-utils):

yum -y install cifs-utils
# Execução para elevação temporária de permissões:
cifscreds add -u bob //192.168.35.142/share
# O sistema solicitará a senha de bob. Após a confirmação, as operações de gravação no /mnt/smb serão autorizadas.

Tags: samba cifs Linux ACL systemd

Publicado em 8-9 19:08