Disons que j'ai 2 comptes d'utilisateurs user1
et user2
. Lorsque je me connecte en tant que user1
, puis passe à l' user2
utilisation 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?
$XAUTHORITY
est 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.