salut
je me loggue sur une machine avec ssh -X machin@192.168.0.2
quand je tape
pkexec /sbin/gparted
j’obtiens
==== AUTHENTICATING FOR org.freedesktop.policykit.exec ====
Authentication is needed to run `/sbin/gparted' as the super user
Authenticating as: machin
Password:
==== AUTHENTICATION COMPLETE ====
(gpartedbin:2418): Gtk-WARNING **: 01:14:32.642: cannot open display:
mais quand je tape
pkexec /usr/sbin/gparted
==== AUTHENTICATING FOR org.gnome.gparted ====
Authentication is required to run the GParted Partition Editor as root
Authenticating as: machin
Password:
==== AUTHENTICATION COMPLETE ====
(gpartedbin:2745): dbind-WARNING **: 01:15:10.978: Couldn't connect to accessibility bus: Failed to connect to socket /run/user/1000/at-spi/bus_0: Aucun fichier ou dossier de ce nom
GParted 1.6.0
configuration --enable-libparted-dmraid --enable-online-resize
libparted 3.6
différence :
- org.freedesktop.policykit.exec ====
Authentication is needed to run `/sbin/gparted’ as the super user
- org.gnome.gparted ====
Authentication is required to run the GParted Partition Editor as root
remarquez aussi le caractère spécial devant /sbin
Evidemment j’ai :
lrwxrwxrwx 1 root root 8 11 janv. 2025 sbin -> usr/sbin
quelqu’un peut m’expliquer?
Policykit ne résonne pâs en terme de chemin mais de binaire et de règles associé, c’est complexe à expliquer clairement mais de façon simple :
Normale car pas de règle spécifiques dans policykit du coup tu passes par l’action par défaut et échoue, méthode à utiliser si pas tu n’as pas besoin de GUI et/ou que le chemin soit directement dans /sbin.
Tu passes cette fois-ci par une règle policykit disponible , méthode à privilégier lorsque tu souhaite utiliser une GUI et/ou que le binaire est dans /usr/sbin.
As-tu déjà testé d’appeler gparted directement sans pkexec, techniquement l’appel se fera correctement via /usr/sbin/gparted et aboutit correctement.
Oui ça ne marche pas,d’où l’essai par pkexec
sudo /usr/sbin/gparted
[sudo] Mot de passe de machin :
X11 connection rejected because of wrong authentication.
(gpartedbin:1659): Gtk-WARNING **: 15:39:43.972: cannot open display: localhost:10.0
su -
Mot de passe :
root@cccc:~# /usr/sbin/gparted
(gpartedbin:1932): Gtk-WARNING **: 15:41:12.772: cannot open display:
MAIS
su -
# env DISPLAY=localhost:10.0 XAUTHORITY=/home/machin/.Xauthority /usr/sbin/gparted fonctionne
ET
$ sudo env DISPLAY=localhost:10.0 XAUTHORITY=/home/machin/.Xauthority /usr/sbin/gparted fonctionne
$ env DISPLAY=localhost:10.0 XAUTHORITY=/home/machin/.Xauthority sudo gparted fonctionne
Conclusion :
après s’être logguer par ssh -X machin@OrdiDistant , on lance la commande normale par exemple
machin@ccc:~$ sudo gparted
si ça ne marche, on doit voir cannot open display: localhost:10.0
on rajoute alors env DISPLAY=localhost:10.0 XAUTHORITY=/home/machin/.Xauthority donc:
machin@ccc:~$ env DISPLAY=localhost:10.0 XAUTHORITY=/home/machin/.Xauthority sudo gparted
Merci clochette pour ton aide
Mais je ne comprends toujours pas pourquoi certaines commandes ont « leur policykit » et pas d’autres.
Quel manuel proposerais-tu sur ce sujet?
Mes maigres connaissances sur le sujet sont par essai empirique et ça doc polkit