Ich verwende derzeit dolphin 17.04.3
und wann immer ich es als sudo ausführe, gibt es den folgenden Fehler,
Executing Dolphin as root is not possible.
ohne zu erklären, warum oder eine Alternative. Wie kann ich Delfin als Root zum Kopieren oder Löschen von Dateien ausführen?
13
Antworten:
Kurz:
Delphin 17.04
Der Dolphin 17.04 oder höher hat eine Prüfung:
Eine Problemumgehung
Sie können die Quellen bearbeiten und die Prüfung deaktivieren. Dann funktioniert der Delphin wie zuvor.
Delphin 18.08
Nur wenige Überprüfungsanfragen
Erlauben Sie erneut, Dolphin als Root-Benutzer auszuführen (ohne sudo zu verwenden): https://phabricator.kde.org/D12795
Zeigen Sie eine Warnung an, wenn Sie als Root-Benutzer ausgeführt werden: https://phabricator.kde.org/D12732
Dolphin 18.08.0 verwendet diese Änderungen und der Dolphin kann mit dem Befehl pkexec als administrativer Superuser gestartet werden.
Mehr: KDE Foruns - Wie kann man Dolphin 18.08 als Root mit Kubuntu oder KDE Neon ausführen? - https://forum.kde.org/viewtopic.php?f=224&t=153655
Hintergrund:
Früher - KDE-Foren - Wie wird Dolphin als Root ausgeführt?: Https://forum.kde.org/viewtopic.php?f=224&t=141836
Aus Sicherheitsgründen: Die Ausführung von Dolphin als Root unter Linux nicht zulassen - https://cgit.kde.org/dolphin.git/commit/?id=0bdd8e0b0516555c6233fdc7901e9b417cf89
Das Ausführen von kate und kwrite als Root unter Linux ist nicht zulässig: https://phabricator.kde.org/R40:9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e
Mehr Tipps
KDE Reddit - Dolphin root in der KDE App 17.04: https://www.reddit.com/r/kde/comments/6785b1/dolphin_root_on_kde_app_1704/
Umgehen Sie "Das Ausführen von Dolphin als Root ist nicht möglich" und erhalten Sie die KDE-Dolphin-Root-Berechtigungen zurück: https://www.reddit.com/r/kde/comments/6xs3mp/bypass_executing_dolphin_as_root_is_not_possible/
Zukunft
Polkit-Unterstützung in KIO: https://phabricator.kde.org/T6561
Wenn es fertig ist, zeigt der Dolphin bei Bedarf die Passwortabfrage an. Jetzt mit dem gepatchten Dolphin & KIO:
quelle
Keine Antwort, nur eine Problemumgehung für den vom OP (
copying or deleting files
) genannten Zweck .Die Idee ist zu
Installieren Sie einen anderen Dateimanager, der diese Einschränkung nicht aufweist und nicht viele Abhängigkeiten mit sich bringt
Erstellen Sie in Dolphin ein Kontextmenü "Als Stamm öffnen" für diesen anderen Dateimanager.
Die Hauptdateimanager anderer Desktops können verwendet werden (Nautilus, Nemo, Caja, Thunar), bringen jedoch einige Abhängigkeiten mit sich. Sogar PCManFM und PCManFM-Qt machen das. Wenn Sie eines davon für einen anderen Zweck benötigen, könnte das Hinzufügen eine gute Lösung sein.
Ich habe festgestellt, dass Krusader (von dem ich denke, dass er in einigen KDE-Systemen standardmäßig installiert war) einfach installiert werden kann, keine Abhängigkeiten in Kubuntu 18.04 mit sich bringt und als Root verwendet werden kann.
Unter seinen Tools hat es die Option "Root".
das fragt nach Passwort in einer GUI.
Um ein Kontextmenü in Delphin hinzuzufügen, erstellen Sie den Ordner
~/.local/share/kservices5/ServiceMenus
und tun Sie es dannund hinzufügen
Aus irgendeinem Grund
kdesu krusader
funktioniert es nicht und ich habe die Lösung von hier aus verwendet . Was auch funktioniert, istkonsole -e sudo krusader
, dass das Terminal anstelle einer GUI für die Passwortabfrage angezeigt wird.Dann sehen Sie in Dolphin:
einen Dialog bringen
Welches ist eine, die funktioniert ..
quelle
Ich habe meine eigene Version basierend auf den obigen Antworten erstellt. Gehen Sie folgendermaßen vor, um ein Kontextmenü zum Öffnen von Dolphin als Root hinzuzufügen :
DolphinAsRoot.desktop
im Verzeichnis aufgerufen wird~/.local/share/kservices5/ServiceMenus/
Das ist alles, ich hoffe es hilft euch allen so wie es mir geholfen hat;)
quelle
Ich habe lediglich das Terminal zur Symbolleiste hinzugefügt (obwohl die Tastenkombination an F4 gebunden ist) und die Befehlszeile verwendet, um Operationen so sudo wie erforderlich auszuführen.
Wie so
Ja, es ist vielleicht nicht so praktisch, aber es zwingt Sie dazu, die Befehlszeile zu lernen, während Sie visuell darstellen, wie der Befehl tatsächlich funktioniert.
Dies ist auf Arch, aber die Funktionalität sollte unter Ubuntu gleich sein. Hoffe das hat geholfen.
quelle
Hier ist es eine Problemumgehung für Dolphin 17.x:
erhalten
libkdeinit5_dolphin.so
von hierVon mir getestet, funktioniert es gut in Ubuntu Bionic.
Quelle
quelle
Es ist trivial!
Schauen Sie sich einfach den Quellcode von Kate und Kwrite an:
In den ersten Codezeilen direkt am Anfang der "Haupt" -Funktion finden Sie:
Dolphin ist nicht anders, außer dies geschieht in libkdeinit5_dolphin.so.
Das Ausführen als root ist also trivial. Alles, was wir tun müssen, ist die Prüfung if uid = 0 zu überspringen.
Die Art und Weise, wie wir dies tun, ist das dauerhafte Patchen von Kate, Kwrite und Delphin.
Das erste, was wir tun, ist, den binären Inhalt in eine Textdatei zu kopieren:
Jetzt können Sie sich die Datei mit ansehen
gedit ~/kate.txt
und wenn Sie nach getuid suchen, finden Sie etwas wie:Jetzt finden Sie auf der linken Seite die Speicheradresse. Nach dem Doppelpunkt (:) sehen Sie den binären Anweisungscode (hex) und rechts davon sehen Sie die Zerlegung dieses Codes (auch bekannt als was er bedeutet). .
Nun, sehen Sie, dort ruft es getuid auf, testet, ob das Null ist, und springt in die if-Anweisung, dh wenn der Rückgabewert gleich Null ist (je: jump if gleich).
Jetzt wollen wir nicht mehr in das Wenn springen, also entfernen wir einfach diesen Mist dort. Aber nur das Entfernen dieses Mistes würde die Adressen um 6 Bytes ändern und dabei alle relativen Sprünge im Programm und infolgedessen das Programm zunichte machen. Anstatt also ersetzen Sie einfach die gesamte Länge der Sprunganweisung mit NOP (kurz für N o Op menarbeit) Anweisungen, auch bekannt als 0x90 in Befehlscode / hex.
Sie müssen also jedes Sprungbyte dort durch 0x90 ersetzen, also dort, wo Sie es zuvor hatten
du wirst haben
Dies kann einfach mit einem Hex-Editor erfolgen.
Also installieren wir eine:
Jetzt suchen Sie im Hex-Editor nach 0f 84 e9 1e 00 00 und ersetzen diese durch 90 90 90 90 90 90. Wenn es nur ein Vorkommen von 0f 84 e9 1e 00 00 gibt und dies der Fall ist, ist dies trivial einfach. Ändern Sie einfach die Bytes in hex in 90 90 90 90 90 90 und speichern Sie. Fertig. Kate oder kwrite werden jetzt geöffnet, egal ob Sie root sind oder nicht.
Wenn Sie dasselbe mit Delfinen tun, werden Sie feststellen, dass
objdump -Crd /usr/bin/dolhin
eine sehr kurze Demontage auftritt.Wenn Sie ausführen
ldd /usr/bin/dolphin
, wird Delphin die gemeinsam genutzte Bibliothek libkdeinit5_dolphin.so ladenAlso machst du den objdump auf libkdeinit5_dolphin.so:
Öffnen Sie nun den objdump:
gedit ~/libkdeinit5_dolphin.txt
Suchen Sie nach getuid und Sie werden sehen, dass eines der Suchergebnisse lautet:
Das ist großartig, sehen Sie, mehr Mist, genau wie bei Kate und Kwrite.
Öffnen
/usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
Sie nun in Ihrem Hex-Editor, suchen Sie danach0f 84 58 1a 00 00
und ersetzen Sie ihn durch90 90 90 90 90 90
.Klicken Sie auf Speichern und fertig.
Dolphin läuft jetzt als root.
Hinweis: Es empfiehlt sich, eine Sicherungskopie der von Ihnen geänderten Dateien zu erstellen, nur für den Fall, dass Sie fertig sind.
Sie können auch einfach die Quelle von Kate, Kwrite und Delphin herunterladen, diesen Mist aus dem Quellcode entfernen, kompilieren und installieren. Aber da dem dummen cmake-System eine beschissene Mistvorlage für irgendeinen dummen Mist wie Symbole fehlt, wahrscheinlich weil der vom Repo gelieferte cmake zu alt ist, funktioniert dies nicht. Schade, wäre zu einfach gewesen, wenn es nur funktioniert hätte, nicht wahr?
Aber nur die ausführbaren Dateien wie beschrieben zu patchen ist schneller, also wen interessiert das schon?
Sie sehen, es ist nicht einfach, aber es ist trivial.
PS:
Jedes Mal, wenn Kate, Kwrite oder Delphin über apt aktualisiert werden, werden Ihre Änderungen überschrieben. Sie müssen sie erneut anwenden. Ich überlasse die Automatisierung des Patch-Prozesses Ihren mehr als fähigen Händen und Ihrer Programmiersprache von joice;)
Kann das in reiner Bash gemacht werden?
Wenn Sie vlc für denselben Mist patchen möchten, können Sie dies auch mit sed tun:
Fügen Sie diese sed-Anweisung einfach in ein Skript ein, damit Sie sie erneut anwenden können, falls dies jemals erforderlich sein sollte, wenn Sie offline sind und keinen Internetzugang haben.
Viel Spaß beim Hacken - mit Kate, Kwrite und Delphin - als Wurzel - während Sie etwas auf vlc sehen / hören.
PS2:
Die beschissenen Root-Checks gingen den Weg des Dodo in KDE v19.04.
Wer n Evolution sagte, war eine schlechte Sache.
Um voranzukommen - Prost!
quelle