você está aqui: Home  → Arquivo de Mensagens

Samba 3 - rpcclient

Colaboração: Fabiano Caixeta Duarte

Data de Publicação: 16 de Março de 2005

Introdução

O Samba, atualmente em sua versão 3.0.11 (04/02/2005), possui diversas ferramentas que facilitam a administração e geração de relatórios das informações sobre um domínio SMB/CIFS.

Vamos aqui abordar sem profundidade uma destas ferramentas, citando um exemplo prático.

rpcclient

Conforme a descrição de seus autores, o rpcclient é um utilitário para executar comunicações com um servidor via RPC. Ele foi desenvolvido para testar funcionalidades do Samba. Entretanto, devido a sua versatilidade e eficiência, muitos administradores de redes têm utilizado esta ferramenta para administrar remotamente servidores e estações Microsoft Windows NT®.

Sua sintaxe é a seguinte:

  rpcclient -c <command string> -U username[%password] -W <workgroup> server

Caso seja omitido o parâmetro '-c', será fornecido um prompt para entrada de comandos. Em caso de omissão da senha, será solicitada interativamente sua digitação.

Uma opção para poder utilizar este comando em um script sem a necessidade de informar a senha interativamente é colocar as informações de autenticação em um arquivo e informar seu nome com o parâmetro '-A' (man rpcclient).

O rpcclient possui comandos para diversos propósitos, como administração de usuários, impressoras, netlogon, etc. Nosso exemplo abordará administração de usuários.

Administração remota de usuários

Imagine o seguinte cenário:

Você está preparando um ambiente de migração de um domínio NT para Samba. Analisando com mais critério, você observa que existem várias contas de usuários que não possuem mais vínculo com a empresa/instituição.

Como ter certeza de que o usuário não se autentica neste servidor de domínio? Como automatizar a tarefa de exclusão destas contas?

Pode ser que exista alguma ferramenta da Microsoft que provenha este tipo de recurso. Eu desconheço. Ademais, se você já tem um ambiente de testes com Samba 3, você já possui uma forma *nix de resolver este problema: rpcclient.

Um pouco de teoria

O id de usuário em ambiente windows é o SID (Security Identifier), que é obtido a partir do SID do servidor + o RID (Relative Identifier). É a partir do RID que vamos capturar informações dos usuários do domínio.

Um pouco de prática

O comando

  rpcclient -c enumdomusers -U Administrator%not24get -W DOMAIN server > domfile

armazena um conjunto de rids de usuários conforme o quadro abaixo:

  user:[beltrano] rid:[0xcc3]
  user:[ciclano] rid:[0x3ef]
  user:[fulano] rid:[0x4bd]

A partir de cada rid, pode-se obter um conjunto de informações sobre a conta de usuário. Para isto, utilizaremos o comando queryuser, passando como parâmetro o rid do usuário.

  rpcclient -c "queryuser 0x4bd" -U Administrator%not24get -W DOMAIN server
  
         User Name   :   fulano
         Full Name   :   Fulano de Tal
         Home Drive  :   \\server\fulano
         Dir Drive   :   H:
         Profile Path:
         Logon Script:
         Description :   Funcionário do Setor Administrativo
         Workstations:
         Unknown Str :
         Remote Dial :   m:                    d                        __
         Logon Time               :      Thu, 06 Mar 2003 16:16:46 GMT
         Logoff Time              :      Wed, 05 Mar 2003 19:36:52 GMT
         Kickoff Time             :      Wed, 07 May 2003 21:00:00 GMT
         Password last set Time   :      Mon, 20 Jan 2003 14:06:09 GMT
         Password can change Time :      Mon, 20 Jan 2003 14:06:09 GMT
         Password must change Time:      Tue, 01 Oct 2003 01:14:07 GMT
         unknown_2[0..31]...
         user_rid :      0x4bd
         group_rid:      0x201
         acb_info :      0x0210
         fields_present: 0x00ffffff
         logon_divs:     168
         bad_password_count:     0x00000000
         logon_count:    0x00001027
         padding1[0..7]...
         logon_hrs[0..21]...

Em meio a tantas informações, vamos nos concentrar nos campos 'User Name' e 'Logon Time'.

No caso em tela, podemos observar que o usuário 'fulano' não se autentica no nosso servidor de domínio desde março de 2003. Assim, vamos removê-lo do sistema.

  rpcclient -c "deletedomuser fulano" -U Administrator%not24get -W DOMAIN server

A partir daí, e utilizando bash + sed + awk, por exemplo, podemos automatizar esta tarefa para remover todos os usuários "obsoletos". Esta parte fica de diversão para o leitor :)

Conclusão

Uma das grandes vantagens de sistemas operacionais *nix é a possibilidade de confeccionar-mos scripts para resolução de problemas de administração de serviços.

O comando rpcclient, da suíte de aplicativos clientes do Samba 3, nos proporciona administrar remotamente estações e servidores Microsoft Windows NT® e Windows 2000®.

Referências



 

 

Veja a relação completa dos artigos de Fabiano Caixeta Duarte

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script