Hola,
He encontrado una incidencia en Soplos Linux Tyron en la que el botón «Actualizar» de Bienvenida de Soplos muestra durante unos instantes:
Operation failed (exit code 127)
Después del mensaje de error, Bienvenida de Soplos continúa y muestra correctamente la lista de paquetes que tienen actualizaciones pendientes.
Entorno
- Soplos Linux Tyron
- Kernel:
7.2.4-soplos-v1
soplos-welcome: 2.1.2-9 (actualmente candidato 2.1.3)
polkitd: 127-3
pkexec: 127-3
policykit-1-gnome: 0.105-8
- XFCE / X11
- Sesión gráfica mediante LightDM
Síntomas
Al pulsar Actualizar en Bienvenida de Soplos aparece:
Operation failed (exit code 127)
El mismo problema se podía reproducir directamente desde una terminal de la sesión gráfica:
pkexec /usr/bin/id
que devolvía:
polkit-agent-helper-1: needs to be setuid root
polkit-agent-helper-1: needs to be setuid root
polkit-agent-helper-1: needs to be setuid root
Error executing command as another user: Not authorized
Sin embargo, polkitd, el agente gráfico de Polkit y la sesión XFCE estaban funcionando correctamente.
Diagnóstico
El problema estaba en:
/usr/lib/polkit-1/polkit-agent-helper-1
El archivo pertenecía correctamente al paquete polkitd, pero tenía permisos:
-rwxr-xr-x 1 root root ...
es decir, 0755.
El helper necesita el bit SUID para poder realizar correctamente la autenticación de Polkit.
Al comprobarlo, el propio ejecutable indicaba:
polkit-agent-helper-1: needs to be setuid root
Esto explicaba el Not authorized de pkexec y, como consecuencia, el exit code 127 mostrado por Bienvenida de Soplos.
Solución
Restaurar el bit SUID del ejecutable:
sudo chmod 4755 /usr/lib/polkit-1/polkit-agent-helper-1
Comprobación:
ls -l /usr/lib/polkit-1/polkit-agent-helper-1
Debe aparecer:
-rwsr-xr-x 1 root root ...
La s en -rws confirma que el bit SUID está activo.
Después de aplicar la corrección:
pkexec /usr/bin/id
volvió a funcionar correctamente desde la sesión gráfica.
Resultado
Una vez restaurado el SUID, pkexec vuelve a poder realizar la autenticación y el problema de Bienvenida de Soplos queda solucionado.
No fue necesario modificar nada mas.
Sobre el origen del problema
No he podido determinar qué provocó que el bit SUID desapareciera. El archivo pertenecía correctamente a polkitd, pero sus permisos habían quedado en 0755 en lugar de 04755.
Por tanto, la causa concreta de la pérdida del SUID queda pendiente de determinar, pero el fallo y la solución sí han podido reproducirse y verificarse.
Quizá sería interesante comprobar si este problema puede aparecer en otros sistemas Soplos tras alguna actualización, restauración o modificación de permisos del sistema.
Un afectuoso saludos y gracias por todo.