De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Fabiano Caixeta Duarte
Data de Publicação: 16 de Março de 2005
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.
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.
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.
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.
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 :)
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®.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários