Una guía para arreglar los agentes de autenticación de Polkit en Arch Linux.

Si ejecutas un compositor Wayland minimalista como MangoWC, Sway o Hyprland, puedes encontrarte con un problema común y frustrante: cuando una aplicación gráfica (como GParted, una herramienta de configuración del sistema o un gestor de paquetes) requiere privilegios administrativos, no obtienes ningún indicador de contraseña, o peor aún, un indicador de contraseña en terminal que bloquea tu flujo de trabajo.

Esto me sucedió recientemente, y aquí está el desglose de por qué ocurre y cómo solucionarlo en Arch Linux.


Polkit está ejecutándose, pero falta el agente

El problema principal es un agente de autenticación gráfica de Polkit faltante. Polkit es un sistema de dos partes:

  1. El demonio (polkitd): Este es el servicio principal que procesa las solicitudes de autorización.
  2. El agente (polkit-gnome-authentication-agent-1, xfce-polkit, etc.): Esta es la aplicación orientada al usuario que proporciona el cuadro de diálogo gráfico para que introduzcas tu contraseña.

La salida de mi sistema confirmó el problema:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# Verificar si el demonio principal de Polkit está ejecutándose (lo estaba)
systemctl status polkit.service
# Salida: Active: active (running)

# Verificar si hay agentes de Polkit ejecutándose (solo se encontró el demonio)
pgrep -af polkit
# Salida: 824 /usr/lib/polkit-1/polkitd --no-debug --log-level=notice

# Probar un comando privilegiado mostró un indicador en terminal (respaldo pkttyagent)
pkexec echo "Test"
# Salida:
# ==== AUTHENTICATING FOR org.freedesktop.policykit.exec ====
# Authentication is needed to run `/usr/bin/echo Polkit agent is running' as the super user
# Authenticating as: Elvin Guti (elvin)
# Password:

La solución: Instalar y auto-iniciar un agente compatible con Wayland

Dado que los compositores Wayland como Hyprland, MangoWC no incluyen una pila completa de entorno de escritorio, el agente de autenticación debe instalarse y agregarse manualmente al script de inicio del compositor.

MangoWC recomienda xfce-polkit, para Hyprland hyprpolkitagent es una opción, sin embargo una opción robusta y ampliamente compatible es el agente de Polkit de GNOME.

Paso 1: Instalar el paquete polkit-gnome

Usa el gestor de paquetes de Arch para instalar el agente:

1
sudo pacman -S polkit-gnome

Paso 2: Configurar el agente para auto-iniciarse

El agente debe lanzarse una vez cuando inicie tu sesión. Para compositores Wayland basados en wlroots (como MangoWC, Sway, River, etc.), típicamente agregas este comando a tu archivo de configuración principal o a un script autostart.sh.

Si usas un autostart.sh (recomendado para MangoWC):

Edita o crea ~/.config/mango/autostart.sh y agrega la siguiente línea:

1
2
3
4
5
# Iniciar el agente de autenticación gráfica de Polkit en segundo plano
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &

# Asegurarse de que el script sea ejecutable
chmod +x ~/.config/mango/autostart.sh

Si usas un comando exec-once en tu configuración principal (ej. ~/.config/mango/config.conf):

1
2
# Lanzar agente de Polkit una vez al inicio
exec-once /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &

Paso 3: Reiniciar y verificar

  1. Reinicia tu sesión Wayland (cierra sesión y vuelve a iniciar).

  2. Ejecuta el comando de prueba nuevamente:

    1
    
    pkexec echo "¡Polkit ahora funciona!"
    

¡Éxito! Ahora deberías ver un cuadro de diálogo gráfico de contraseña apropiado que aparezca, permitiéndote ejecutar aplicaciones privilegiadas sin problemas.


¿Arregló esto tu problema en MangoWC u otro compositor minimalista? ¡Házmelo saber en los comentarios!