utiliser sudo sur les applications GUI


10

Lorsque j'utilisais kubuntu, je pouvais toujours ouvrir des applications X avec sudo, sudo katepar exemple. Maintenant que je suis passé à arch, cela ne fonctionne pas. Je sais qu'on m'a toujours dit d'utiliser kdesu, mais quel paramètre existe-t-il dans kubuntu qui me permet d'utiliser sudo sur les applications X qui m'empêche de le faire sur arch?

Edit :
Désolé, je me suis fait ce que je déteste tellement> _ <

Voici ce que j'essaie de faire:

[falmarri @ Téléchargements falmarri-z-arch] $ sudo kate
Mot de passe: 
Aucun protocole spécifié
kate: impossible de se connecter au serveur X: 0.0

Notez que ce n'est qu'une session de terminal ordinaire utilisant konsole, je n'utilise pas SSH

/ etc / sudoers :

Fichier ## sudoers.
##
## Ce fichier DOIT être édité avec la commande 'visudo' en tant que root.
## Le fait de ne pas utiliser 'visudo' peut entraîner des erreurs de syntaxe ou d'autorisation de fichier
## qui empêche l'exécution de sudo.
##
## Voir la page de manuel sudoers pour plus de détails sur la façon d'écrire un fichier sudoers.
##

##
## Spécification d'alias d'hôte
##
## Groupes de machines. Il peut s'agir de noms d'hôtes (éventuellement avec des caractères génériques),
## Adresses IP, numéros de réseau ou groupes de réseaux.
# Host_Alias ​​WEBSERVERS = www1, www2, www3

##
## Spécification d'alias utilisateur
##
## Groupes d'utilisateurs. Il peut s'agir de noms d'utilisateurs, d'uids, de groupes Unix,
## ou netgroups.
# User_Alias ​​ADMINS = millert, dowdy, mikef

##
## Spécification d'alias Cmnd
##
## Groupes de commandes. Souvent utilisé pour regrouper les commandes associées.                                                               
# Cmnd_Alias ​​PROCESSES = / usr / bin / nice, / bin / kill, / usr / bin / renice, \                                                             
# / usr / bin / pkill, / usr / bin / top                                                                             

##                                                                                                                                   
## Spécification des valeurs par défaut                                                                                                            
##                                                                                                                                   
## Vous souhaiterez peut-être conserver certaines des variables d'environnement suivantes                                                                  
## lors de l'exécution de commandes via sudo.                                                                                                   
##                                                                                                                                   
## Paramètres régionaux                                                                                                                   
# Valeurs par défaut env_keep + = "LANG LANGUAGE LINGUAS LC_ * _XKB_CHARSET"                                                                     
##                                                                                                                                   
## Exécutez les applications X via sudo; HOME est utilisé pour trouver le                                                                         
Fichier ## .Xauthority. Notez que d'autres programmes utilisent HOME pour trouver                                                                      
## fichiers de configuration et cela peut conduire à une élévation de privilèges!                                                                    
 Par défaut env_keep + = "HOME"                                                                                                         
##                                                                                                                                   
## Paramètres du chemin d'accès aux ressources X11                                                                                                        
 Valeurs par défaut env_keep + = "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"                                                              
##                                                                                                                                   
## Paramètres du chemin du bureau                                                                                                             
 Par défaut env_keep + = "QTDIR KDEDIR"                                                                                                 
##                                                                                                                                   
## Autoriser les commandes sudo-run à hériter de la session ConsoleKit des appelants
# Par défaut env_keep + = "XDG_SESSION_COOKIE"
##
## Décommentez pour activer les méthodes de saisie spéciales. Des précautions doivent être prises
## cela peut permettre aux utilisateurs de renverser la commande exécutée via sudo.
 Par défaut env_keep + = "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
##
## Décommentez pour activer la journalisation de la sortie d'une commande, sauf pour
## sudoreplay et redémarrez. Utilisez sudoreplay pour lire les sessions enregistrées.
# Valeurs par défaut log_output
# Par défaut! / Usr / bin / sudoreplay! Log_output
# Valeurs par défaut! / Usr / local / bin / sudoreplay! Log_output
# Par défaut! / Sbin / reboot! Log_output

##
## Spécification d'alias Runas
##


Valeurs par défaut: falmarri timestamp_timeout = 10

##
## Spécification de privilège utilisateur
##
root ALL = (ALL) ALL

## Décommenter pour permettre aux membres de la roue de groupe d'exécuter n'importe quelle commande
% roue ALL = (ALL) ALL

## Même chose sans mot de passe
#% roue ALL = (ALL) NOPASSWD: ALL

## Décommenter pour autoriser les membres du groupe sudo à exécuter n'importe quelle commande
#% sudo ALL = (ALL) ALL

## Décommentez pour permettre à tout utilisateur d'exécuter sudo s'il connaît le mot de passe
## de l'utilisateur sous lequel il exécute la commande (root par défaut).
# Defaults targetpw # Demander le mot de passe de l'utilisateur cible
# ALL ALL = (ALL) ALL # AVERTISSEMENT: utilisez-le uniquement avec 'Defaults targetpw'

## Lire les fichiers drop-in depuis /etc/sudoers.d
## (le '#' ici n'indique pas de commentaire)
#includedir /etc/sudoers.d


Définissez "ne fonctionne pas". Quelle erreur obtenez-vous? Avez-vous configuré sudocorrectement? Pouvez-vous démarrer des applications non GUI en utilisant sudo?
sepp2k

ps. vous pouvez également essayer une application appelée suxqui est fondamentalement «su avec X»
xenoterracide

Réponses:


6

Cela ressemble à une configuration intentionnelle dans Arch Linux. Voir ceci pour une discussion avec des liens vers des solutions.

La meilleure astuce semble être d'ajouter "DISPLAY XAUTHORITY" aux valeurs par défaut "env_keep" /etc/sudoers.

Fedora a /etc/sudoersce qui suit et cela permet à sudo somexapp de réussir.

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"

J'ai lu le fichier / etc / sudoers et il a mentionné le fait qu'il s'agissait d'une fonctionnalité. J'ai commenté les lignes qu'il m'avait indiquées mais ça ne fonctionne toujours pas. J'ai posté mon fichier / etc / sudoers dans ma question.
Falmarri

J'ai ajouté les paramètres Fedora à ma réponse. Je pense que vous manquez encore DISPLAY et XAUTHORITY dans votre fichier posté.
fschmitt

En fait, cela semble fonctionner maintenant. Je ne sais pas si j'ai juste oublié d'enregistrer ou quelque chose. Merci =]
Falmarri

9

Les programmes graphiques ne doivent pas être exécutés avec sudo. La bonne façon est d'utiliser kdesudodans KDE pour exécuter des programmes GUI en tant que root, ou gksudans GNOME.

L'exécution de programmes graphiques en tant que root peut entraîner de graves problèmes, c'est pourquoi les wrappers sont fournis. Lisez ce fil de discussion de la liste de diffusion Arch pour un problème sérieux que vous pourriez rencontrer en essayant de vous tromper sudoen lançant une application GUI.


Je ne comprends pas ce que disait ce fil. Est-ce uniquement un problème lors de l'exécution de X en tant que root? Je n'ai jamais eu de problème en exécutant sudo depuis une session X
Falmarri

3
L'exécution d'applications GUI en tant que root avec sudo peut potentiellement modifier les fichiers appartenant à root. Un fichier particulièrement désagréable auquel cela peut arriver est ~/.ICEauthority. Cela peut vous empêcher de vous connecter. Google "ICEauthority" et vous verrez que les résultats sont pleins de personnes qui ne peuvent pas se connecter à leurs systèmes parce que le fichier est devenu la propriété de root. Je viens de choisir celui-là tel qu'il est sur Arch, le système d'exploitation de l'utilisateur.
andrewsomething
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.