Mon compte d'utilisateur habituel est, disons, utilisateur1. J'ai créé un utilisateur2 distinct pour une application x que je souhaiterais exécuter tout en étant connecté à x en tant qu'utilisateur1, mais d'une manière qui l'empêcherait d'accéder en lecture / écriture aux données de l'utilisateur1. Je pensais que je pourrais utiliser xauth et sudo / su en user2 à partir de user1 pour exécuter cette application. Comment puis-je faire cela? Je ne sais pas comment configurer xauth.
48
.Xauthority
fichier dans le répertoire personnel de l'utilisateur2. Problème 2: En quelque sorte et pour une raison quelconque, je ne comprends pas, aprèssu
quoi, XAUTHORITY conserve le chemin du fichier vers celui de l'utilisateur1. Mais ce fichier n'est pas lisible par l'utilisateur2.unset XAUTHORITY
sous user2hexkey
dans laxauth add
commande le même que celui dexauth list
ou dois - je créer un nouveau hasard?J'ai mis
.zshrc
une ligne avecexport XAUTHORITY=~/.Xauthority
et maintenant je suis capable d'exécutersudo -E xcommand
. Après beaucoup de recherches sur Google, c'était pour moi le moyen le plus simple.la source
sudo -E
(et que l'utilisation-E
est désactivée sur la plupart des installations par défaut) car normalement, lasudoers
configuration par défaut permettrait à laXAUTHORITY
variable d'environnement d'être transmise à sudo.-E
. Il peut être défini en tant que variable pouvant être transmise, et Red Hat ou Debian le suggère.En supposant que debian ou ubuntu (devrait être similaire à Red Hat / SUSE).
la source
sux
n'est pas maintenu (et supprimé des dépôts Debian / Ubuntu): packages.qa.debian.org/s/sux/news/20140101T172633Z.htmlPremièrement: n'utilisez pas
xhost +
, c'est plutôt peu sécurisé (couverture autoriser / refuser).Utilisez plutôt le mécanisme X-Cookie:
Sinon, si vous avez
sux
installé, utilisez-le (voir la réponse de ehempel).Dans les deux cas, l'utilisateur2 utilisera le cookie secret dans .Xauthority pour autoriser le serveur X, et personne d'autre n'y aura accès.
Remarques:
.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
fichier, cela est plus sélectif; sinon c'est une question de goût.la source
Cela résoudra le problème pour tous les utilisateurs:
la source
En tant que root:
Où yourusername est votre nom d'utilisateur :)
Ensuite, faites su comme votre utilisateur
xclock
devrait travailler s'il est installéla source
Ce ne sont que des hacks:
Sleske ci-dessus a, je pense, la solution appropriée.
la source
ssh -X
est une solution très simple et élégante, ne dépendant d'aucun élément obsolète / non maintenu de gtk / kde (qui nécessite l'installation de plus de binaires avec le bit SUID ...).J'ai trouvé quelque chose qui fonctionne très bien pour moi sur KDE
la source
kde-cli-tools
, et non dans$PATH
mais dans/usr/lib/x86_64-linux-gnu/libexec/kf5/kdesu
(évidemment selon l'architecture).De cette façon, made in suse / opensuse: http://www.novell.com/support/kb/doc.php?id=7003743
Modifiez simplement le fichier /etc/pam.d/su en ajoutant l’option (en gras):
Ensuite, vous pouvez passer avec su sans -:
et lancez l'application graphiquement.
la source
Pour GNOME (et sans aucun environnement de bureau, je l’utilise avec icewm uniquement)
gksu
:la source