Re: dolphin en root
Un petit patch pour la route
Logiciels / Bureautique

Alan Membre non connecté
-
- Voir le profil du membre Alan
- Inscrit le : 17/05/2018
- Groupes :
Suite à la mise à jour de Mageia 6, 580 paquets en ce qui me concerne,
la commande suivante, lancée par un lien vers une application, ne fonctionne plus:
kdesu dbus-launch dolphin %i
Après saisie du mot de passe, elle permet l'utilisation de Dolphin avec le user 'root'.
Je m'en sert pour des copies de répertoire ou pour des recherches, ce n'est pas d'usage
courant, mais c'est pratique. Un lancement en ligne de commande me révèle la cause du blocage:
Executing Dolphin as root is not possible.
Ah bon, et depuis quand? Après une recherche dans MLO et Google, je vois que je suis
le dernier des mohicans. La première livraison de Mageia 6 aurait contourné le blocage?
Je récupère les sources de Dolphin sur mon dépôt favorit, et effectivement on
trouve dans le 'main.cpp':
#ifndef Q_OS_WIN
// Check whether we are running as root
if (getuid() == 0) {
std::cout << "Executing Dolphin as root is not possible." << std::endl;
return EXIT_FAILURE;
}
#endif
Je comprend qu'il puisse s'agir d'un garde fou pour l'utilisateur, débutant ou non,
mais je pense avoir commis suffisamment d'erreurs, professionnellement et personnellement,
pour savoir ce qu'il convient de (ne pas) faire sur un ordi. C'est un peu agaçant...
Aux petits maux les grands remèdes. 'Konsole' en root, et:
cd /usr
find . -type f -exec grep -i "Executing Dolphin as root is not possible." {} \;
pour vérifier que le binaire supposé coupable est bien:
libkdeinit5_dolphin.so
Un bon désassembleur est donc requis, soit 'IdaPro' en version 7.0 free.
Et je finis par trouver le code suivant:
.text:0000000000042108 call _getuid
.text:000000000004210D test eax, eax
.text:000000000004210F jz loc_438C8
.text:0000000000042115 lea rax, [rsp+138h+var_98]
L'adresse relative 'loc_438C8' pointe bien sur l'affichage du message et l'exit.
CQFD. Le code binaire correspondant au 'jz' à l'offset 4210F étant:
4210F 0F 84 B3 17 00 00
modifier l'adresse relative 'B3170000' en '00000000' permet de retrouver
le fonctionnement désiré. Vous avez dit patch? plutôt poke!
Après une sauvegarde obligatoire du fichier original, on effectue la modification
sous root avec un bon éditeur héxa, on sauvegarde, et tout fonctionne correctement.
Ça me rappelle mon premier Z80. Alors un peu sauvage? je ne crois pas, même si je ne
conseille pas cette manipulation aux débutants, manip qui sera d'ailleurs écrasée
à la prochaine mise à jour...
Ce qui est étonnant, c'est que le mode d'emploi ne mentionne même pas le blocage.
Pourquoi ne pas programmer une option en ligne de commande pour autoriser ou non une
fonctionnalité? C'est simple à utiliser, et tout le monde serait satisfait.
Alan
Alan
Espace, l'ultime frontière...
Espace, l'ultime frontière...

PapyLinux Membre non connecté
-
- Voir le profil du membre PapyLinux
- Inscrit le : 23/05/2011
- Groupes :
[quote
Ce qui est étonnant, c'est que le mode d'emploi ne mentionne même pas le blocage.
Pourquoi ne pas programmer une option en ligne de commande pour autoriser ou non une
fonctionnalité? C'est simple à utiliser, et tout le monde serait satisfait.
Alan[/quote]
Je ne te le fais pas dire !
Les barbus de KDE prennent vraiment les utilisateurs pour des débiles mentaux

JLB

teutates Membre non connecté
-
- Voir le profil du membre teutates
- Inscrit le : 24/09/2011
- Site internet
- Groupes :
Merci pour l'explication.
Toutefois suivre tes indications pour corriger va relever du jeu entre le chat et la souris. Il faudra probablement refaire la manipulation à chaque mise à jour de Dolphin... et à chaque mise à jour majeure de Plasma.
Cela me rappelle Windows quand on patchait une dll pour pouvoir personnaliser le démarrage de Windows et qu'il fallait ensuite recommencer ...
Toco y se gausos !
Asus P8Z68-V/GEN3 + Intel Core i2700k + RAM G-Skill 4x4Go PC 12800 + Gainward Geforce GTX 560 - 2 Go + Western Digital Velociraptor 300 Go (Mageia Cauldron / Fedora / Debian / Manjaro / Windows 10) + Seagate Barracuda 7200t/mn - 2 To - Sata 3 (data) + SSD Samsung 64 Go - Sata 3 (Mageia stable)
Asus P8Z68-V/GEN3 + Intel Core i2700k + RAM G-Skill 4x4Go PC 12800 + Gainward Geforce GTX 560 - 2 Go + Western Digital Velociraptor 300 Go (Mageia Cauldron / Fedora / Debian / Manjaro / Windows 10) + Seagate Barracuda 7200t/mn - 2 To - Sata 3 (data) + SSD Samsung 64 Go - Sata 3 (Mageia stable)
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie