usando sudo en aplicaciones GUI

10

Cuando estaba usando kubuntu, siempre podía abrir aplicaciones X con sudo, sudo katepor ejemplo. Ahora que he cambiado a arch, eso no funciona. Sé que siempre me han dicho que use kdesu, pero ¿qué configuración hay en kubuntu que me permite usar sudo en aplicaciones X que me impide hacerlo en el arco?

Editar :
Lo siento, hice lo que tanto odio> _ <

Esto es lo que estoy tratando de hacer:

[descargas de falmarri @ falmarri-z-arch] $ sudo kate
Contraseña: 
Ningún protocolo especificado
Kate: no se puede conectar al servidor X: 0.0

Tenga en cuenta que esta es solo una sesión de terminal normal usando konsole, no estoy usando SSH

/ etc / sudoers :

## sudoers file.
##
## Este archivo DEBE editarse con el comando 'visudo' como root.
## Si no se usa 'visudo', pueden producirse errores de sintaxis o de permiso de archivo
## que evitan que sudo se ejecute.
##
## Consulte la página de manual de sudoers para obtener detalles sobre cómo escribir un archivo de sudoers.
##

##
## Especificación de alias de host
##
## Grupos de máquinas. Estos pueden incluir nombres de host (opcionalmente con comodines),
## Direcciones IP, números de red o grupos de red.
# Host_Alias ​​WEBSERVERS = www1, www2, www3

##
## Especificación de alias de usuario
##
## Grupos de usuarios. Estos pueden consistir en nombres de usuario, uids, grupos Unix,
## o netgroups.
# User_Alias ​​ADMINS = millert, dowdy, mikef

##
## Especificación de alias Cmnd
##
## Grupos de comandos. A menudo se usa para agrupar comandos relacionados.                                                               
# Cmnd_Alias ​​PROCESOS = / usr / bin / nice, / bin / kill, / usr / bin / renice, \                                                             
# / usr / bin / pkill, / usr / bin / top                                                                             

##                                                                                                                                   
## Especificación predeterminada                                                                                                            
##                                                                                                                                   
## Es posible que desee mantener algunas de las siguientes variables de entorno                                                                  
## cuando ejecuta comandos a través de sudo.                                                                                                   
##                                                                                                                                   
## Configuración regional                                                                                                                   
# Valores predeterminados env_keep + = "LANG LANGUAGE LINGUAS LC_ * _XKB_CHARSET"                                                                     
##                                                                                                                                   
## Ejecuta aplicaciones X a través de sudo; HOME se utiliza para encontrar el                                                                         
##. Archivo de autorización. Tenga en cuenta que otros programas usan HOME para buscar                                                                      
## archivos de configuración y esto puede conducir a la escalada de privilegios!                                                                    
 Por defecto env_keep + = "HOME"                                                                                                         
##                                                                                                                                   
## Configuración de ruta de recursos X11                                                                                                        
 Valores predeterminados env_keep + = "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"                                                              
##                                                                                                                                   
## Configuración de ruta de escritorio                                                                                                             
 Por defecto env_keep + = "QTDIR KDEDIR"                                                                                                 
##                                                                                                                                   
## Permitir que los comandos sudo-run hereden la sesión ConsoleKit de los llamantes
# Por defecto env_keep + = "XDG_SESSION_COOKIE"
##
## Descomente para habilitar métodos de entrada especiales. Se debe tener cuidado como
## esto puede permitir a los usuarios subvertir el comando que se ejecuta a través de sudo.
 Valores predeterminados env_keep + = "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Descomente para habilitar el registro de la salida de un comando, excepto para
## sudoreplay y reiniciar. Utilice sudoreplay para reproducir sesiones registradas.
# Valores predeterminados log_output
# ¡Valores predeterminados! / Usr / bin / sudoreplay! Log_output
# ¡Valores predeterminados! / Usr / local / bin / sudoreplay! Log_output
# ¡Valores predeterminados! / Sbin / reboot! Log_output

##
## Especificación de alias de Runas
##


Valores predeterminados: falmarri timestamp_timeout = 10

##
## Especificación de privilegios de usuario
##
root ALL = (ALL) ALL

## Descomente para permitir que los miembros de la rueda de grupo ejecuten cualquier comando
% rueda ALL = (ALL) ALL

## Lo mismo sin contraseña
#% rueda ALL = (ALL) NOPASSWD: ALL

## Descomente para permitir que los miembros del grupo sudo ejecuten cualquier comando
#% sudo ALL = (ALL) ALL

## Descomente para permitir que cualquier usuario ejecute sudo si conoce la contraseña
## del usuario con el que están ejecutando el comando (root de forma predeterminada).
# Valores predeterminados targetpw # Solicitar la contraseña del usuario objetivo
# ALL ALL = (ALL) ALL # ADVERTENCIA: solo use esto junto con 'Defaults targetpw'

## Leer archivos desplegables de /etc/sudoers.d
## (el '#' aquí no indica un comentario)
#includedir /etc/sudoers.d

Falmarri
fuente
Definir "no funciona". ¿Qué error obtienes? ¿Has configurado sudocorrectamente? ¿Se puede iniciar el uso de aplicaciones que no sean GUI sudo?
sepp2k
PD. también puedes probar una aplicación llamada suxque básicamente es "su with X"
xenoterracide

Respuestas:

6

Esto parece una configuración intencional en Arch Linux. Vea esto para discusión con enlaces a soluciones.

El mejor consejo allí parece ser agregar "DISPLAY XAUTHORITY" a los valores predeterminados de "env_keep" /etc/sudoers.

Fedora tiene /etc/sudoerslo siguiente y esto permite que sudo somexapp tenga éxito.

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
fschmitt
fuente
Leí el archivo / etc / sudoers y mencionó el hecho de que esta era una característica. Descomenté las líneas que me dijo pero todavía no funciona. Publiqué mi archivo / etc / sudoers en mi pregunta.
Falmarri
Agregué la configuración de Fedora a mi respuesta. Creo que todavía extrañas DISPLAY y XAUTHORITY en tu archivo publicado.
fschmitt
En realidad parece funcionar ahora. No estoy seguro si olvidé guardar o algo. Gracias =]
Falmarri
9

Los programas gráficos no deben ejecutarse con sudo. La forma correcta es usarlo kdesudoen KDE para ejecutar programas GUI como root, o gksuen GNOME.

Ejecutar programas gráficos como root tiene el potencial de causar problemas serios, es por eso que se proporcionan los contenedores. Lea este hilo de la lista de correo de Arch para ver un problema grave que podría encontrar tratando de engañar sudopara iniciar una aplicación GUI.

andrewsomething
fuente
Estoy confundido con lo que decía ese hilo. ¿Es solo un problema al ejecutar X como root? Nunca he tenido problemas para ejecutar sudo desde una sesión X
Falmarri
3
Ejecutar aplicaciones GUI como root con sudo puede cambiar potencialmente los archivos que serán propiedad de root. Un archivo particularmente desagradable que esto puede suceder es ~/.ICEauthority. Esto puede evitar que inicies sesión. Google "ICEauthority" y verás que los resultados están llenos de personas que no pueden iniciar sesión en sus sistemas porque el archivo pasó a ser propiedad de root. Acabo de elegir ese como está en Arch, el sistema operativo del usuario.
andrewsomething