«Aucun protocole spécifié» lors de l'exécution de vim avec sudo

9

Récemment, je commence à obtenir "Aucun protocole spécifié" lors de l'utilisation sudo vim. C'est juste un avertissement, je suppose, car tout fonctionnait normalement (je peux ouvrir, modifier et enregistrer des fichiers). Le message n'apparaît pas si j'utilise sudo -E vimdonc je pense que j'ai fait quelque chose de mal lors de l'édition /etc/profilerécente, mais je ne suis pas sûr. Comment puis-je réparer cela?

phunehehe
la source
1
Tout ne fonctionne pas normalement. La prise en charge de la souris ne fonctionne pas, elle nécessite un protocole tel que gpm ou le protocole de la souris xterm.
ninjalj

Réponses:

8

Une mise à niveau récente a modifié les paramètres par défaut de sudo. Si quelqu'un a ce problème, vérifiez votre sudoerconfiguration. À partir d'un exemple dans la page de manuel:

# Run X applications through sudo; HOME is used to find the
# .Xauthority file.  Note that other programs use HOME to find
# configuration files and this may lead to privilege escalation!
Defaults env_keep += "DISPLAY HOME"

Assurez-vous que vous avez quelque chose comme ça dans /etc/sudoers(utilisez visudopour modifier le fichier si vous en avez besoin).

EDIT: Je ne sais pas exactement depuis quand, mais au moins xauth 1.0.9 supporte la variable d'environnement XAUTHORITY. Définir cela et laisser HOME intact, corrige également l'avertissement de protocole et est la meilleure solution, car aucune ressource IPC accessible en écriture (sockets / tuyaux) n'est créée pointant vers les ressources racine (une voie pour l'escalade de privilèges). xauth n'exporte pas automatiquement la variable dans l'environnement, donc la meilleure façon est de la définir dans l'initialisation de votre shell.

phunehehe
la source
3

Selon ce fil , il existe deux solutions possibles à votre problème:

Mettez la ligne suivante dans mon .bashrcscript d' utilisateurs root

export XAUTHORITY=/home/<user>/.Xauthority

puis j'ai copié .Xauthority pour rooter aussi, ie

sudo cp ~/.Xauthority /root

et maintenant l'avertissement a disparu.

Vous pouvez également essayer de courir via gksudo.

Quoi qu'il en soit, les deux valent la peine d'être essayés ...

Justin Ethier
la source
Je copiais .Xauthorityà /rootet c'est tout!
phunehehe
Non, je me suis trompé, après le redémarrage, j'ai eu l'erreur "clé invalide".
phunehehe
1
Pour autant que je me souvienne, le contenu d'un fichier .Xauthority change, vous devez donc le lier symboliquement au lieu de le copier.
Adam Byrtek
2

Bien que la question ait déjà des réponses, aucune n'a fonctionné complètement pour moi. Je l'ai résolu grâce à une combinaison de quelques suggestions ci-dessus et de quelques morceaux de ma distribution Debian.

J'ai créé un lien symbolique vers un .Xauthorityfichier pour root et tous les autres utilisateurs. Le problème a été résolu pour l'utilisateur root, car root a des autorisations d'accès à ce fichier, mais pas pour les autres utilisateurs. J'ai ajouté une autorisation de lecture seule à tous les autres utilisateurs pour le fichier .Xauthority.

#do this for all other users who do not have .Xauthority file    
ln -s /home/userwithxauth/.Xauthority .Xauthority

#run the following command to give read only access permission to .Xauthority file
chmod 644 /home/userwithxauth/.Xauthority
McNulty
la source