Guia do Linux/Avançado/SAMBA/Mapeamento de usuários/grupos em clientes
Mapeamento de usuários/grupos em clientes
[editar | editar código-fonte]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.
Mapeamento de usuários/grupos domínio em Windows
[editar | editar código-fonte]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.
Mapeamento de usuários/grupos domínio em Linux
[editar | editar código-fonte]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]:
- Instale o programa
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 comandonet
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 [#s-s-samba-c-dominio-linux Linux, Seção 18.14.3.9] 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:
- Agora, inicie o daemon
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