Mon compte d'utilisateur normal est, disons, user1. J'ai créé un utilisateur2 distinct pour une application x que je voudrais exécuter tout en étant connecté à x en tant qu'utilisateur1, mais d'une manière qui l'empêchera d'accéder en lecture/écriture aux données de l'utilisateur1. J'ai pensé que je pourrais utiliser xauth et sudo/su vers user2 à partir de user1 pour exécuter cette application. Comment dois-je m'y prendre ? Je ne sais pas comment configurer xauth.
Réponses
Trop de publicités?Pour utiliser xauth de manière sélective, en tant qu'utilisateur1 :
xauth list|grep `uname -n`
Ceci imprime les entrées d'autorisation de la clé hexagonale pour vous . Vous êtes pourrait ont également des affichages différents associés à ces hôtes.
En tant qu'utilisateur2, définissez votre affichage (en supposant le cas par défaut) :
DISPLAY=:0; export DISPLAY
Alors cours :
xauth add $DISPLAY . hexkey
Notez le point après le $DISPLAY et avant la clé hexagonale.
Lorsque l'accès n'est plus nécessaire, en tant qu'utilisateur2 vous pouvez exécuter :
xauth remove $DISPLAY
Premier : N'utilisez pas xhost +
c'est assez peu sûr (autorisation/refus de couverture).
Utilisez plutôt le mécanisme X-Cookie :
su user2
cp /home/user1/.Xauthority /home/user2/.Xauthority
export DISPLAY=:0
Alternativement, si vous avez sux
installé, utilisez-le (voir la réponse de ehempel).
Dans les deux cas, user2 utilisera le cookie secret dans .Xauthority pour s'autoriser à accéder au serveur X, et personne d'autre n'y aura accès.
Notas:
- En fonction de vos autorisations de fichiers, vous devrez peut-être copier .Xauthority d'une autre manière.
- Au lieu de copier
.Xauthority
vous pouvez également utiliserxauth
pour extraire et copier la clé d'autorisation (voir la réponse de Randall). Si vous avez plusieurs clés dans le.Xauthority
Le dossier est plus sélectif, sinon c'est une question de goût.
- Réponses précédentes
- Plus de réponses