Tenía la misma pregunta que tú pero para un usuario normal. Digamos que quiero iniciar Firefox usando la cuenta de usuario foo. Estoy conectado como barra:
[bar@localhost ~]$ sudo -u foo -H firefox
Lamentablemente, ese comando falló con el mismo error que en la pregunta (es decir, no se especificó ningún protocolo y no se puede abrir la pantalla)
Mi solución fue simplemente agregar al usuario foo a la lista de acceso autorizado al servidor X.
xhost si:localuser:foo
Y eso fue todo, pude iniciar Firefox (y otras aplicaciones X) usando sudo
y el usuario foo.
Antecedentes : en X Window, hay una arquitectura cliente / servidor. Cuando inicia una aplicación, solicita la autorización del servidor X para mostrarla. De manera predeterminada, una vez que abre una sesión (inicia sesión gráficamente), usted (su usuario) obviamente puede comunicarse con el servidor y mostrar aplicaciones. Otros usuarios no tienen este permiso a menos que lo especifique. xhost
es una herramienta para manipular la lista de permisos. El si
indica que la regla es del lado del servidor y autoriza al usuario local foo
a mostrar aplicaciones. X Window es muy potente a este respecto y puede mostrar aplicaciones remotas localmente jugando con elDISPLAY
variable de entorno y xhost
(pero no limitado a ellas). En los viejos tiempos, cuando la gente escribíaxhost +
e implícitamente permitió que todos usaran su sesión X, era posible mostrar aplicaciones en su pantalla para bromas ;-) no tanto hoy en día, ya que las personas usan cada vez menos la arquitectura cliente / servidor X Window (al menos por lo que observo en el últimos 10 años).
PD: Hice esto para lanzar Firefox en una especie de "cárcel" (para evitar una vulnerabilidad como pdf.js en el futuro). Pero rápidamente descubrí que llamar a Firefox a través de sudo no le permitirá acceder al audio ni al hardware de video. Pero hay un tipo que explica claramente cómo activar la aceleración de hardware de video y el audio al llamar a Firefox a través de sudo . YMMV con estas instrucciones, por ejemplo, todavía tengo un permiso denegado con audio pero el video está bien (probado en Fedora 22 con SELinux ON).