O mapeamento de usuários do servidor remoto com a máquina local é usado quando você deseja controlar o acesso aos arquivos/diretórios a nível de usuário. No Windows isto permite que cada arquivo/diretório tenha o acesso leitura/gravação somente para os usuários definidos e autenticados no controlador de domínio. No Linux as permissões de arquivos e diretórios podem ser definidas para o usuário do PDC, garantindo o mesmo nível de controle de acesso.
Esta seção explica como configurar o mapeamento de UID/GID entre o servidor PDC SAMBA e seus clientes NetBIOS Windows e Linux.
Para o Windows utilizar os usuários remotos do servidor para fazer seu controle de acesso por nível de usuário, siga os seguintes passos:
- Windows 9X
-
Entre no Painel de Controle/Propriedades de Rede e clique na tab Controle de Acesso. Marque a opção Controle de acesso a nível de usuário e coloque o nome da máquina PDC na caixa de diálogo de onde os usuários/grupos serão obtidos. Você também pode colocar o nome do grupo de trabalho, neste caso a máquina fará uma busca pelo PDC ou outra máquina de onde pode obter os nomes de usuários/grupos.
OBS: Para fazer isto, você deverá estar autenticado no domínio.
A associação de UIDs de usuários de um domínio com usuários locais no Linux é feita pelo programa winbind. Ele utiliza o mecanismo nsswitch para obter outras fontes de dados de usuários e os associa nas ferramentas de gerenciamento de contas existentes no sistema. Siga estes passos para fazer sua instalação e configuração do Winbind em um servidor Linux:
-
Instale o programa winbind:
apt-get install winbind
. -
Modifique o arquivo
smb.conf
adicionando as seguintes linhas na seção[global]
:winbind separator = + winbind cache time = 30 winbind uid = 10000-15000 winbind gid = 10000-12000 winbind enum users = yes winbind enum groups = yes template homedir = /home/winbind/%D/%U template shell = /bin/false
Onde
- winbind separator
-
Separador usado para separar o nome dos grupos do nome de domínio. Este parâmetro somente tem sentido quando usado em conjunto com um PDC Windows ou quando os módulos
pam_winbind.so
enss_winbind.so
estão sendo utilizados. - winbind cache time
-
Define a quantidade de tempo em segundos que um nome/grupo permanecerá no cache local para não ser feita uma nova consulta no servidor PDC.
- winbind uid
-
Especifica o intervalo que será usado para mapear os nomes de usuários remotos como UIDs locais. Você precisará ter certeza que nenhum UID nesse intervalo é usado no sistema, como pelo LDAP, NIS ou usuários normais. Por padrão, os IDS de usuários normais na maioria dos sistemas Linux, começam por 1000. No exemplo serão usados os UIDs de 10000 a 15000 para mapeamento e UIDs dos usuários do domínio para usuários locais.
- winbind gid
-
Especifica o intervalo de GIDs que será usado para mapear os nomes de grupos remotos do domínio como GIDs locais. Como no parâmetro
winbind uid
, você deverá ter certeza que esta faixa de GIDs não está sendo usada em seu sistema.OBS: Atualmente SAMBA não possui suporte a grupos globais, apenas para usuários globais, desta forma os grupos da máquina remota não serão trazidos para o sistema. Uma forma de contornar isto, é utilizando o LDAP ou o NIS no PDC e nos clientes Linux.
- winbind enum users
-
Permite enumerar usuários do winbind para retornarem dados quando solicitados. A não ser que possua uma instalação parecida em todas as máquinas (como com o uso de LDAP e NIS) responda "yes" para não ter problemas.
- winbind enum groups
-
Permite enumerar grupos do winbind para retornarem dados quando solicitados. A não ser que possua uma instalação parecida em todas as máquinas (como com o uso de LDAP e NIS) responda "yes" para não ter problemas.
- template homedir
-
Quando o sistema cliente for um Windows NT ou baseado, este diretório será retornado como diretório de usuário para o sistema. O parâmetro %D será substituído pelo nome do domínio e %U pelo nome de usuário durante a conexão.
- template shell
-
Este será o shell enviado para máquinas NT ou baseadas nele como shell usado para login. O valor usado foi
/bin/false
pois desabilita os logons, mas você poderá usar/bin/sh
(ou algum outro shell) para efetuar conexões do comando net ou outras ferramentas NetBEUI ao servidor.
-
Reinicie o servidor SAMBA
-
Edite o arquivo
/etc/nsswitch.conf
alterando a ordem de pesquisa de nomes de usuários e grupos do sistema local para a seguinte:passwd: files winbind group: files winbind shadow: compat
-
Agora, inicie o daemon winbind local com o comando:
/etc/init.d/winbind restart
. -
Entre no domínio com o comando:
smbpasswd -j domínio -r nome_do_PDC -U usuario
(veja “Linux” para aprender como entrar no domínio em caso de dúvidas). -
Agora faça o teste para obter a listagem dos grupos e usuários do domínio do PDC digitando:
wbinfo -u wbinfo -g getent passwd getent group
Caso isto não aconteça, revise suas configurações e veja os logs procurando por erros quando o winbind tenta obter a lista de usuários/grupos do domínio.
Agora você deve ser capaz de criar diretórios/arquivos locais usando os nomes de usuários/grupos do domínio. Lembre-se de reiniciar sempre o winbind quando reiniciar o SAMBA por alguma modificação for feita (ao mesmo que saiba que não afeta o winbind), assim como entrar novamente no domínio, caso contrário o mapeamento deixará de funcionar.
OBS: Atualmente, o winbind não oferece suporte a restrições por data/hora de logon para estações de trabalho. Isto deverá ser implementado em uma futura versão
Copyright © 1999-2020 - Gleydson Mazioli da Silva