Disons que j'ai 2 comptes d'utilisateurs user1et user2. Lorsque je me connecte en tant que user1, puis passe à l' user2utilisation su, je peux exécuter des programmes en ligne de commande, mais les programmes GUI échouent.
Exemple:
user1@laptop:~$ su - user2
user2@laptop:~$ leafpad ~/somefile.txt
No protocol specified
leafpad: Cannot open display:
Alors, comment puis-je exécuter une application GUI?
$XAUTHORITYest toujours défini sur user1~/.Xauthority, que le programme, je suppose, essaiera de lire, et il échoue parce que ce fichier a généralement le mode 0600 (-rw-------), ce qui signifie qu'il n'est pas disponible pour la lecture par n'importe qui dans le groupe "autre", qui inclut user2. Ce qui signifie que si vouschmod o+r ~/.Xauthority(en tant qu'utilisateur1), vous aurez contourné ce problème. J'ai écrit un script qui le démontre.