Pkexec et AUTHENTICATING

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 :

  1. org.freedesktop.policykit.exec ====
    Authentication is needed to run `/sbin/gparted’ as the super user
  2. 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:confused: