
BeyondTrust/pbis-open se archivó en noviembre de 2021; no lo instales en una máquina nueva. La vía oficial en Ubuntu 24.04/26.04 es realmd + sssd + adcli. El vídeo del ODT se mantiene abajo, como registro del método antiguo.Unir Ubuntu a Active Directory es la forma de que el escritorio o el servidor Linux se autentique con la misma cuenta de Windows, sin usuario local por máquina. El dominio sigue siendo AD DS local (o Entra Domain Services, que emula AD). No confundir con Microsoft Entra ID (el antiguo Azure AD): nube de identidad, sin realm join.
Qué ha cambiado desde PBIS
Likewise Open → PowerBroker Open → PBIS Open fue el atajo de 2007–2019: un agente propio, UID estable, join en un solo comando. BeyondTrust archivó el código abierto; el producto comercial (AD Bridge) sigue aparte. En Ubuntu el apilamiento de la distro ganó el lugar:
realmddescubre el dominio y orquesta el join.adclicrea la cuenta de equipo en AD y graba el keytab.sssd(providerad) responde NSS/PAM: inicio de sesión, grupo, caché sin conexión.
Winbind/Samba todavía sirve si el nodo también es file server CIFS. Para “solo autenticar usuarios del AD”, SSSD es el predeterminado de Canonical. Si el AD es un Samba 4 en Linux, la configuración del DC está en Samba4 Setup OpenSUSE — la unión del Ubuntu es la misma.
Antes del join: DNS, hora y nombre
Kerberos no perdona. Si el reloj se retrasa más de ~5 minutos o el DNS no encuentra _ldap._tcp, el join falla con un mensaje inútil.
- El DNS de Ubuntu apunta al domain controller (este necesita ser autoritativo del dominio).
- Hora sincronizada —
chronyosystemd-timesyncd, preferiblemente contra el propio DC. - Nombre de equipo corto (la cuenta de equipo en AD tiene un límite NetBIOS de 15 caracteres) y FQDN en
/etc/hosts.
sudo hostnamectl set-hostname ubuntu-lab.ad1.example.com
# /etc/hosts: 10.51.0.11 ubuntu-lab.ad1.example.com ubuntu-lab
# DNS via netplan (ajuste o arquivo da interface)
# nameservers:
# addresses: [10.51.0.5]
sudo netplan apply
timedatectl status
resolvectl status
Paquetes y el realm join
En Ubuntu 24.04 y 26.04 los paquetes oficiales son suficientes. No descargues .deb de sitios de terceros.
sudo apt update
sudo apt install sssd-ad sssd-tools realmd adcli
sudo realm -v discover ad1.example.com
sudo realm join -v ad1.example.com
# ou conta de join dedicada, não o Administrator do dia a dia:
# sudo realm join -v -U joiner ad1.example.com
realm discover tiene que listar server-software: active-directory e client-software: sssd. Si no lo encuentra, el problema es DNS, no es SSSD. El join solicita la contraseña, llama al adcli, escribe /etc/sssd/sssd.conf, habilita PAM/NSS y levanta el servicio.
realm list
sudo adcli testjoin
getent passwd joao@ad1.example.com
id joao@ad1.example.com
La cuenta de equipo aparece en el contenedor Computers de ADUC. OTP de join existe (--one-time-password) si la política de la empresa no permite contraseña de administrador en el portátil.
sssd.conf: lo que importa
O realm ya generó el archivo. Este necesita ser 0600 root:root — si no, SSSD se niega a arrancar.
[sssd]
domains = ad1.example.com
config_file_version = 2
[domain/ad1.example.com]
id_provider = ad
access_provider = ad
ad_domain = ad1.example.com
krb5_realm = AD1.EXAMPLE.COM
cache_credentials = True
krb5_store_password_if_offline = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
ldap_id_mapping = True
default_shell = /bin/bash
cache_credentials— el portátil fuera de la red aún autentica (con la contraseña ya vista).use_fully_qualified_names = True— inicio de sesiónjoao@ad1.example.com. Solo cambie aFalsesi tiene un dominio y está seguro de que no entrará en un bosque con confianza.ldap_id_mapping— UID/GID derivados del SID. Estable entre máquinas con el mismo dominio; no es el UID que PBIS grababa en AD. Si el parque antiguo depende de UID fijo en el atributo POSIX, eso es otro diseño (SFU /ldap_idmap_range/ idmap en Samba).
Home automático (el realm no activa esto por sí solo):
sudo pam-auth-update --enable mkhomedir
Inicio de sesión, SSH, sudo y quién puede entrar
En el escritorio, GDM no lista al usuario de AD la primera vez: haga clic en “¿No está en la lista?” e introduzca joao@ad1.example.com. A continuación, aparece como local.
En el servidor, OpenSSH suele venir con la contraseña desactivada. Sin clave, el inicio de sesión de AD no entra hasta que decidas hacerlo a propósito:
# /etc/ssh/sshd_config.d/ad.conf (só se a política permitir senha)
PasswordAuthentication yes
KbdInteractiveAuthentication yes
sudo systemctl reload ssh
Restringir quién inicia sesión — no dejes todo el dominio en el SSH del jump host:
sudo realm deny --all
sudo realm permit -g 'linux-admins@ad1.example.com'
Sudo para un grupo de AD (el espacio en el nombre se convierte en barra invertida):
%linux-admins@ad1.example.com ALL=(ALL:ALL) ALL
SSH con FQDN queda con dos @: ssh joao@ad1.example.com@ubuntu-lab. Ticket Kerberos después del inicio de sesión: apt install krb5-user e klist. La GPO de verdad en Ubuntu es otro paquete — el ADSys de Canonical, no el SSSD solo.
AD local, Entra y Samba
- AD DS (Windows Server 2022/2025) — este tutorial.
- Entrar a Domain Services — AD gestionado en Azure; la unión es la misma pila, realm en MAYÚSCULAS.
- Entra ID — SSO/OIDC/SAML. No genera cuenta de equipo Kerberos. Herramienta equivocada para “incorporar Ubuntu al dominio”.
- Samba 4 como DC — Ubuntu se une igual; el DC es otro artículo.
Hay un hermano de este artículo, centrado en el escritorio: Ubuntu en Windows Active Directory. Para repetir la unión en decenas de nodos, el playbook vive mejor en Ansible que en un gist de 2017.
Salir del dominio:
sudo realm leave ad1.example.com
El vídeo de 2017 (PBIS en 16.04)
El paso a paso grabado para el Canal ODT usa Ubuntu 16.04 y el agente BeyondTrust. Sirve de contexto histórico; los comandos del script no son los que ejecutas hoy.
Documentación actual: Ubuntu Server — SSSD with Active Directory. Código SSSD: github.com/SSSD/sssd.