Browse By

Configurando administradores de domínio no Samba

Este artigo visa explicar o que é e como configurar administradores de domínio no Samba. Um exemplo de uso prático é quando você quer que determinadas pessoas possam instalar programas – isto é, ter privilégios de Administrador – em qualquer máquina do domínio.

Esta é uma nova versão do artigo, baseada no Samba 3.0.25c e na distribuição Debian Etch 4.0. Muitos dos procedimentos aqui podem ser realizados em outras distribuições Linux sem grandes alterações.

Se você é do tipo apressado, você pode pular o tópico “Teorizando”. Mas é quase certo que você terá dificuldades em entender o que está sendo feito sem ler esta parte… =)

Teorizando…

Quem conhece um pouco o Samba sabe que ele pode funcionar como controlador de domínio, isto é, atuar como um repositório de contas de usuário para uma rede de computadores Windows. O que nem todo mundo sabe é que o Samba é baseado na tecnologia do Windows NT Server, logo ele possui muitos recursos advindos dele, e um deles é o suporte completo a grupos. No NT, cada grupo tem um SID (Security Identifier), mas normalmente usamos o RID (Relative Identifier) para identificá-los.

Os principais grupos de usuários de um domínio NT, bem como seus respectivos nomes, RIDs e grupos locais correspondentes, são:

Grupo NT Descrição RID Grupo correspondente
DOMAIN ADMINS Administradores de domínio 512 Administradores
DOMAIN USERS Usuários de domínio 513 Usuários
DOMAIN GUESTS Convidados de domínio 514 (nenhum)

Obs.: o “Domain Guests” não é mapeado para o grupo “Convidados”, como esperado. Ainda não descobri o porquê…

Ao ser configurado como membro de um domínio, o Windows NT/200x/XP insere estes grupos dentro de seus correspondentes locais (vide tabela acima), para que o grupo do domínio tenha os mesmos privilégios do grupo local. Por padrão, nenhum destes grupos NT têm um correspondente no Linux. Isto quer dizer que nenhum destes mapeamentos realizados pelo Windows surtirá efeito até que você diga ao Samba quais são os grupos correspondentes no Linux. Ou seja, você precisa especificar quais grupos do sistema (Linux) representam os grupos NT (Samba). Segundo o HOWTO oficial, este mapeamento precisa ser feito para assegurar o bom funcionamento do domínio. Portanto, iremos efetuar o mapeamento dos 3 grupos, embora o mais útil para este artigo seja o Domain Admins. Existem outros grupos, tais como “Usuários avançados”, “Operadores de cópia”, entre muitos outros, mas estes não são considerados essenciais, e sua configuração não será abordada aqui.

Configuração do Linux

Tudo o que precisamos fazer no Linux é criar os grupos que serão mapeados para os seus respectivos no Samba. Isto é feito com o comando groupadd. No caso, nós iremos criar os grupos ntadmin, ntuser e ntguest. Ou seja:

# groupadd ntadmin
# groupadd ntuser
# groupadd ntguest

Você pode aproveitar grupos existentes, como o “root” no lugar de “ntadmin”, “users” no lugar do “ntuser”, e “nogroup” no lugar de “ntguest”. Mas particularmente, eu não acho bom negócio misturar grupos do sistema com grupos específicos do Samba, especialmente no primeiro caso. Isto fica a seu critério.

Configuração do Samba

Agora falta mapear os grupos criados no Linux aos grupos do Samba. Isto é feito com o comando net. Deve-se especificar o grupo Windows, o grupo NT, o RID, o tipo de grupo (domínio/local/embutido), e um comentário (opcional). Ou seja:


# net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin rid=512 type=d comment="Administradores"
# net groupmap add ntgroup="Domain Users" unixgroup=ntuser rid=513 type=d comment="Usuários"
# net groupmap add ntgroup="Domain Guests" unixgroup=ntguest rid=514 type=d comment="Convidados"

O próximo passo é cadastrar os usuários novos e existentes nestes novos grupos.Para novos usuários, ao cadastrá-lo no Linux (comando useradd), defina seu grupo primário (parâmetro -g) como sendo um destes 3 grupos. Exemplo:
# useradd -g ntadmin daniel

Para usuários já existentes, você deve modificar o grupo primário com o comando usermod, também usando o parâmetro -g. Em seguida, você precisa modificar o grupo do usuário no Samba, com o pdbedit, usando o RID do grupo desejado como parâmetro. Exemplo:

# usermod -g ntadmin daniel
# pdbedit -r -G 512 -u daniel

Isto fará com que o usuário “daniel” passe a fazer parte do grupo “Domain Admins”, RID 512. Confira a saída do comando pdbedit, e no final da linha “Primary Group SID”, veja se o final corresponde ao RID especificado.Para testar as alterações, faça logoff, caso esteja logado, efetue logon e verifique, caso o usuário em questão tenha sido cadastrado em Domain Admins, se você consegue efetuar tarefas administrativas, como instalar programas.Se não der certo, releia este artigo e cheque cada passo; certamente algo não foi feito =) Mas sinta-se à vontade para acessar o fórum e questionar a respeito das instruções passadas aqui.

Referências:

<