AD Manager: Active Directory e Samba 4 pelo navegador, desktop e CLI

Mascote LinuxPro administrando o Active Directory no painel do AD Manager, ao lado de racks de servidores e do cachorro caramelo

Quem administra Active Directory em Linux conhece o roteiro: o ADUC e o RSAT só rodam no Windows, o samba-tool devolve texto difícil de automatizar e as permissões de pasta viram uma mistura de ACL POSIX com ACL do Windows. O AD Manager nasceu para acabar com esse malabarismo. É um projeto de código aberto, sob licença MIT, que administra diretórios Windows Server ou Samba 4 — usuários, grupos, OUs, computadores e política de senha — por um painel web, um app desktop e uma CLI. Nos servidores Samba, ele também cuida dos compartilhamentos com permissões do Windows, dos backups e da migração.

Neste post eu mostro o que ele faz, como as peças se encaixam e como testar em um minuto com Docker.

O que é o AD Manager

É um binário único escrito em Go, com o painel em Vue 3 embutido. O mesmo executável funciona como painel web, como CLI, como servidor MCP para agentes de IA e como agente nos servidores de arquivos Samba. Há também um app desktop nativo para Linux, Windows e macOS (Apple Silicon, Intel e um .app universal).

O ponto que mais me importava no desenho: o painel não exige uma conta de serviço no AD. Ele fala LDAPS com o domínio usando as credenciais do administrador conectado; por padrão, o acesso é restrito a membros do grupo Domain Admins (dá para configurar outro grupo), e toda alteração vai para o log de auditoria — quem fez, de onde, o quê e quando.

Lista de usuários no painel web do AD Manager

O que ele faz

  • Diretório: usuários, grupos, OUs, computadores e política de senha. Criar, editar, mover, ativar e desativar contas, excluir com confirmação digitada, gerador de senha e link de troca de senha para o próprio usuário escolher a nova.
  • Servidores de arquivos: pastas e compartilhamentos com ACL do Windows (NTFS) por grupo e por usuário, histórico das permissões com restauração, lixeira, ABE (o usuário só vê o que pode abrir) e auditoria de arquivos.
  • Backup: do controlador de domínio Samba e dos servidores de arquivos, com agenda, retenção e restauração, e também do próprio painel.
  • Sincronização de pastas: traz pastas de outro servidor SMB (Windows ou Samba) com assistente, prévia, quarentena e verificação.
  • Instalação pelo navegador: um assistente transforma um Ubuntu limpo em controlador de domínio, DC adicional ou servidor de arquivos.
  • Migração Windows → Samba: inventário, comparação, importação de outro AD (usuários, grupos, DNS e compartilhamentos) e ingresso de um DC Samba.
  • DNS, GPOs e sessões SMB, logs de auditoria, HTTP e do Samba, 14 temas (claros, escuros e visual plano) e interface em inglês e português.

Como as peças se encaixam

O painel conversa com o AD por LDAPS. Nos servidores de arquivos Samba (ou no próprio DC) roda o agente: ele recebe as solicitações por HTTPS, enfileira as tarefas com Asynq e Redis e mexe no Samba localmente. O app desktop usa a API do painel e fala direto com os agentes.

Diagrama da arquitetura do AD Manager: painel, CLI, MCP, desktop, agentes, Redis e controladores Samba

Componente Função
ad-manager server Painel web HTTPS e API REST (Swagger em /swagger, depois de habilitá-lo nas Configurações)
ad-manager agent Roda em cada servidor de arquivos ou DC: pastas, compartilhamentos, ACLs, backups e sincronização
ad-manager (CLI) Administração do diretório pelo terminal, além de comandos de backup, sincronização, migração e importação
ad-manager mcp Servidor MCP para agentes de IA consultarem e administrarem o diretório
ad-manager-desktop App nativo (Fyne) para Linux, Windows e macOS

A stack é a mesma que eu mostrei na série Vue.js + Go com Echo v5: Echo no backend e a SPA embutida no binário com go:embed.

Teste em um minuto com Docker

A imagem de demonstração sobe um domínio Samba 4 completo, com o painel e o agente, num único contêiner:

docker run -d --name ad-manager --hostname dc1 --cap-add SYS_ADMIN -p 8443:8443 jniltinho/ad-manager
docker logs ad-manager

A primeira partida leva cerca de um minuto, porque provisiona o domínio. O log mostra a URL, o usuário e a senha gerada para o Administrator. Abra https://localhost:8443, aceite o aviso de certificado não confiável (ou importe a CA da demonstração) e entre. O --cap-add SYS_ADMIN é o que permite ao Samba gravar as permissões do Windows nos atributos estendidos security.*.

Se Docker é novidade para você, vale ler a história do Docker antes.

Instalando num servidor Ubuntu 26.04

Para um servidor de verdade, baixe o .deb da página de releases, instale, ligue os serviços e leia o token de configuração:

sudo apt install --no-install-recommends ./ad-manager_X.Y.Z_amd64.deb
sudo systemctl enable --now ad-manager ad-manager-agent
sudo cat /opt/ad-manager/data/setup-token

Depois abra https://IP-DO-SERVIDOR:8443 e informe o token. O assistente de configuração prepara a máquina como um novo controlador de domínio, um DC adicional ou um servidor de arquivos — ou apenas conecta o painel a um Active Directory que já existe. Nada muda no servidor antes da tela de revisão.

Assistente de instalação do AD Manager no navegador, etapa de detalhes do novo domínio

Compartilhamentos com permissões do Windows de verdade

Esse é o recurso que mais me fez falta no Samba. Ao criar ou editar um compartilhamento, você escolhe quem tem controle total, escrita ou só leitura, por grupo ou por usuário. O agente grava a ACL do Windows usando o código do próprio Samba (o módulo acl_xattr): ela fica no atributo security.NTACL da pasta, e o Samba deriva dela uma representação POSIX aproximada. Por isso, evite alterar essas permissões direto com setfacl ou chmod. Cada troca guarda a permissão anterior, e dá para restaurá-la com um clique, inclusive nas subpastas e arquivos que herdam.

Edição de compartilhamento no AD Manager com as permissões do Windows da pasta

O compartilhamento fica no registro do Samba (o mesmo que o net conf edita), e não no smb.conf. Assim cada mudança é uma transação e não exige reiniciar o serviço.

Backup, sincronização e migração

Na tela de Backup você agenda cópias do DC e dos servidores de arquivos, com retenção e restauração, e faz o backup do próprio painel. Na Sincronização, um assistente de cinco passos traz pastas de outro servidor SMB: origem e teste de conexão, o que copiar, para onde, quando e uma prévia antes de copiar qualquer arquivo. O que seria apagado vai para uma quarentena, não para o lixo.

Assistente de sincronização de pastas do AD Manager testando a conexão com o servidor de origem

Para quem ainda tem um DC Windows, o projeto traz um roteiro de migração com verificação prévia, inventário antes e depois e importação de outro AD. Se o seu ambiente também usa LDAP para acesso remoto, combina com o Apache Guacamole com LDAP.

App desktop e IA

O app desktop reúne as principais tarefas de administração — usuários, grupos, OUs, computadores, compartilhamentos, política de senha, backup, sincronização e logs — e usa os mesmos 14 temas do painel web. Ele usa a API do painel e fala direto com os agentes para os compartilhamentos.

App desktop do AD Manager mostrando a lista de usuários do domínio

E com o servidor MCP embutido, um agente de IA consulta e administra o diretório com as mesmas regras e a mesma auditoria do painel. É a mesma ideia que eu usei no mcp-wp-go para o WordPress: dar ao agente ferramentas com escopo bem definido, em vez de um shell.

Código aberto

O projeto está no GitHub em github.com/jniltinho/ad-manager, sob licença MIT. Cada release traz o .deb, os binários do servidor para Linux e Windows e o app desktop para Linux, Windows e macOS. A documentação, em inglês, cobre instalação, painel, CLI, MCP, agente, backup, sincronização e migração.

Se o AD Manager te poupar tempo, deixe uma estrela no repositório e abra uma issue com o que faltou no seu ambiente. Contribuições são bem-vindas.