Как запустить Дельфина от имени root?
В настоящее время я использую dolphin 17.04.3 , и всякий раз, когда я запускаю его как sudo, он выдает следующую ошибку Executing Dolphin as root is not possible. без объяснения причин или альтернативы. Итак, как я могу запустить дельфина как root для копирования или удаления файлов?
7 ответов
Короткий:
Дельфин 17.04
У дельфина 17.04 или позже есть проверка:
Обходное решение
Вы могли отредактировать источники и отключить проверку. Затем дельфин будет работать как прежде.
Дельфин 18.08
Немногие рассматривают запрос
Повторно разрешите рабочего дельфина как пользователя root (но все еще не использующий sudo): https://phabricator.kde.org/D12795
Покажите предупреждение при выполнении как пользователь root: https://phabricator.kde.org/D12732
Дельфин 18.08.0 использует эти изменения, и дельфин может быть запущен с командой pkexec как административный суперпользователь.
Еще: KDE Foruns — Как выполнить дельфина 18.08 как корень с неоном Kubuntu или KDE? — https://forum.kde.org/viewtopic.php? f=224&t=153655
Фон:
Из соображений безопасности: Запретите выполняющегося дельфина как корень на Linux — https://cgit.kde.org/dolphin.git/commit/? >
Запретите выполняющегося дельфина как корень на Linux В основном копия фиксации kate/9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e, который был записан Martin Grässlin
Больше подсказок
Обходной "Выполняющийся дельфин как корень не возможен", и Возвратите Полномочия пользователя root дельфина KDE: https://www.reddit.com/r/kde/comments/6xs3mp/bypass_executing_dolphin_as_root_is_not_possible/
Будущее
Когда это будет готово, дельфин покажет запрос пароля в случае необходимости. Теперь, с исправленным Dolphin&KIO:
Не ответ, а обходной путь для цели, упомянутой в ОП ( copying or deleting files ).
Идея состоит в том, чтобы
установить другой менеджер файлов, который не имеет такого ограничения и который не приносит много зависимостей
создайте контекстное меню «Открыть как корень» в Dolphin для этого другого файлового менеджера.
Можно использовать главные файловые менеджеры других рабочих столов (Nautilus, Nemo, Caja, Thunar), но они приносят некоторые зависимости. Даже PCManFM и PCManFM-Qt делают это. Если вам нужен один из них для каких-то других целей, добавьте, что это может быть хорошим решением.
Я обнаружил, что Krusader (который, как мне кажется, раньше устанавливался по умолчанию в некоторых системах KDE) может быть легко установлен, не приносит никаких зависимостей в Kubuntu 18.04 и может быть используется как корень.
Под инструментами у него есть опция «Root».
, который запрашивает пароль в графическом интерфейсе.
Чтобы добавить контекстное меню в Dolphin, создайте папку
/.local/share/kservices5/ServiceMenus , а затем выполните
По какой-то причине kdesu krusader не работает и я использовал решение из здесь . То, что также работает, это konsole -e sudo krusader , но это показывает терминал вместо графического интерфейса для запроса пароля.
Затем вы увидите в «Дельфине»:
с диалоговым окном
Я сделал свою собственную версию на основе ответов выше. Итак, чтобы добавить контекстное меню в , откройте Dolphin от имени root , выполните следующие действия:
-
Создайте файл с именем, например, DolphinAsRoot.desktop , в каталоге
- Если оно все еще не отображается в контекстном меню в Dolphin, перейдите в «Настройки -> Настроить Dolphin . ». -> Услуги «и активируйте опцию, которую вы недавно добавили. Это должно быть там. Если нет, закройте Dolphin или даже выйдите и войдите в свой сеанс.
Это все, я надеюсь, что это поможет вам всем, как это помогло мне;)
Alls, который я сделал, был, добавляет Терминал к панели инструментов (хотя сочетание клавиш, связанное с F4), и использовал командную строку для выполнения операций как sudo как требуется.
Да это не могло бы быть столь же удобно, но это вынуждает Вас начать изучать командную строку при предоставлении Вам визуального представления того, как команда на самом деле работает.
Это находится на Arch, но функциональность должна быть тем же на Ubuntu. Надеюсь, что помог.
здесь это — обходное решение для дельфина 17.x:
Протестированный мной, это хорошо работает в бионической Ubuntu.
Только посмотрите на исходный код kate и kwrite:
В первых строках кода непосредственно в начале "основной" функции, Вы найдете:
Дельфин не отличается, кроме этого происходит в libkdeinit5_dolphin.so.
Столь рабочий, как корень тривиален, все, которое мы должны сделать, пропустить, если uid=0 проверяют.
Путем мы делаем это, исправлением пермы kate, kwrite и дельфином.
Так, первая вещь, которую мы делаем, выводит двоичное содержание к текстовому файлу:
Теперь можно посмотреть на файл с gedit
/kate.txt , и если Вы будете искать getuid, то Вы найдете что-то как:
Теперь, на левой стороне, Вы находите адрес памяти после двоеточия (:) Вы будете видеть двоичную систему команд (шестнадцатеричное число) и направо от этого, Вы видите дизассемблирование того кода (иначе, что это означает).
Теперь, Вы видите, там это называет getuid, тесты, если это — нуль и вскакивает в оператор "if", то есть если возвращаемое значение равно нулю (je: перейдите если равный).
Теперь мы не хотим вскакивать, если, таким образом, мы просто удаляем то дерьмо туда. Но просто удаление того дерьма изменило бы адреса на 6 байтов, повредив любые относительные переходы в программе в процессе, и как следствие, программе. Так вместо этого Вы просто заменяете всю длину оператора перехода с NOP (короткий ни для Какой Операции) инструкции, иначе 0x90 в системе команд / шестнадцатеричное число.
Таким образом, необходимо заменить каждый байт перехода там 0x90 поэтому, где Вы ранее имели
Вы будете иметь
Это может быть сделано просто с Hex-редактором.
Таким образом, мы устанавливаем тот:
Теперь в Hex-редакторе, Вы ищете 0f 84 e9 1e 00 00 и замену это с 90 90 90 90 90 90. Если существует только один occurency 0f 84 e9 1e 00 00, и существует, то это тривиально просто. Просто измените байты в шестнадцатеричном числе к 90 90 90 90 90 90 и сохраните. Законченный. Kate или kwrite теперь откроются, являетесь ли Вы корнем или нет.
если Вы сделаете то же с дельфином, то Вы поймете objdump -Crd /usr/bin/dolhin производит очень короткое дизассемблирование.
если Вы работаете ldd /usr/bin/dolphin , Вы будете видеть, что дельфин загружает общую библиотеку libkdeinit5_dolphin.so
linux-vdso.so.1 (0x00007ffc2fdf0000) libkdeinit5_dolphin.so =>/usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so (0x00007fb54e76c000)
Таким образом, Вы делаете objdump на libkdeinit5_dolphin.so:
Теперь откройте objdump: gedit
Поиск getuid, и Вы будете видеть, что один из результатов поиска:
Здорово, Вы видите, больше дерьма точно так же, как в kate и kwrite.
Теперь открытый /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so в Вашем Hex-редакторе искать 0f 84 58 1a 00 00 и замените его 90 90 90 90 90 90 .
Хит сохраняет, и сделанный.
Дельфин теперь работает как корень.
Примечание: Хорошая идея сделать резервную копию файлов Вы изменяете, на всякий случай Вы f ***.
Кроме того, Вы могли просто загрузить источник kate, kwrite, и дельфина, удалить то дерьмо из исходного кода, скомпилировать и установить. Но так как глупая cmake система пропускает некоторый дрянной загаженный шаблон для небольшого количества глупого дерьма, такого как значки, вероятно, потому что repo-предоставленный cmake слишком стар, это не работает. Слишком плохо, было бы слишком просто, если это просто работало, не был бы он.
Но просто исправив исполняемые файлы, поскольку я описал, быстрее, поэтому кто заботится так или иначе.
Вы видите, это не просто, но это тривиально.
PS:
Теперь, любое время kate, kwrite или дельфин обновляются через Кв., Ваши изменения будут перезаписаны. Необходимо будет повторно применить их. Я оставлю автоматизацию процесса патча в Ваших больше, чем способные руки и Вашем языке программирования joice 😉
Это может быть сделано в чистом ударе?
Кроме того, если Вы хотите исправить vlc для того же дерьма, можно сделать это с sed:
Просто помещенный, что sed-оператор в сценарий, таким образом, можно повторно применяться, если Вам когда-нибудь нужно к тому, если Вы в режиме офлайн и не имеете никакого доступа в Интернет.
Счастливое взламывание — с kate, kwrite и дельфином — как корень — при наблюдении/слушании чего-то на vlc.
PS2:
Дрянные корневые проверки пошли путем Дронта в KDE v19.04.
Кто сказал, что nevolution был плохой вещью.
Прогрессировать — За Ваше здоровье!
Как открыть dolphin с правами администратора?
sudo и su пробовал, kdesu dolphin вызывает окно для ввода пароля, но после ввода пароля dolphin не запускается (Хотя, раньше это таки работало.).

А у меня работает

А sudo dolphin что в консоль выдает — почему не запускается ?

ЗЫ: А зачем его пускать от рута? Что-то не могу придумать ни одного use case.
sudo dolphin
[sudo] password for ilya:QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’ «Session bus not found\nTo circumvent this problem try the following command (with Linux and bash)\nexport $(dbus-launch)»
У вас он работает?
У меня работает и kdesu5 и простой sudo, что в терминале, что в Alt+F2 (только из tmux не работает).
Ты как в систему логинился? sddm?
И вооще, по «XDG_RUNTIME_DIR not set» много чего гуглится.

да, нажал ALT+F2, набрал kdesu dolphin, ввёл пароль, открылся dolphin с рутовым домашним каталогом.

Не нужно открывать Dolphin с правами администратора.

Потому что навороченые и многофункциональные GUI-приложения не являются теми, что обладают достаточной безопасностью для запуска из-под рута. Т.е. они не разрабатывались для работы из-под рута.
Это не винда, где безопасность через жопу — учись аккуратно к этому относиться.
Потому что любой вредоносный процесс запустившийся под юзером возможно только того и ждёт, чтобы поиметь систему через XEvent. Так можно за доли секунды хоть руткит залить, а это уже серьёзно. От некоторых руткитов очень тяжело избавиться или вообще невозможно.
ну систему то всегда можно переустановить?
Хотя, спасибо за информацию, не ожидал что все так серьезно.

Alt+F2 —> kdesudo dolphin
Это параноя а не безопасность.
Благодоря этой «безопасности» пользователи дестрибутивов Linux лешины не только нормального файлового менеджера но и полноценого текстового редактора . Зайдите почитайте что автор пишет это п. ц !! Какое вообще отношение имеет KWirite к библиотекам того-же Dolphin (именно на этот эксплойт годовой давности ссылаеться автор Dolphin и считает это весомой причиной рубить функционал.
Re: Это параноя а не безопасность.
Пользователи не лишены ничего. Лишены только дауны по типу тебя, мозгов. Внезапно, кдеешные либы полностью и максимально глубоко интегрированы в фм, так что тут всё логично.
Убойные фишки Dolphin’а: право root’а

Возможность получить из непосредственно из пользовательского сеанса файлового менеджера права администратора — не уникальна для Dolphin’а. Хотя и она появилась впервые в его предшественнике, Konqueror’е, ещё в KDE версии минимум третьей. Однако ныне эту функцию можно найти и в Nemo из среды Cinnamon, и в Caja из MATE, и в Thunar’е из Xfce. Однако во всех них действия от root’а сводятся к открытию того же файлового менеджера или редактора для модификации текстового файла. В Dolphin’е же ассортимент их гораздо шире.
Правда, здесь требуется важная оговорка. Возможность «действовать от root’а» в Dolphin’е возникает не сама по себе, а обеспечивается специальным пакетом, который в дистрибутивах на базе Ubuntu именуется rootactions-servicemenu , в Archlinux’е и его клоах —
kde-servicemenus-rootactions , в более иных дистрибутивах — как-то иначе, или же может просто отсутствовать. Но даже если он имеется в репозиториях данного дистрибутива — по умолчанию он может и не быть установленным.
Что делать в таких случаях — мы с Мануалом расскажем позднее. А пока продемонстрируем предоставляемые этим пакетом возможности на примере Maui 17.03 и наших пересборок на его основе — «облегчённой» и «тяжёлой»: во всех этих трёх случаях полный комплекс действий от root’а доступен в Dolphin’е «искаропки».
Чтобы ознакомиться с полным набором действий «от root’а», нужно зайти в меню Настройки, выбрать там пункт Настроить Dolphin и перейти в раздел Действия. Появившийся список впечатляет:

Разумеется, включать все доступные действия не обязательно: на скриншоте отмечены те, что включены у нас с Мануалом. Из которых обратим внимание на пункт Установить владельцем активного пользователя иногда она оказывается очень полезной. Ну и разумеется пункт Открыть как текст часто востребован: через него общесистемные конфиги легко отредактировать при необходимости в текстовом редакторе — в нашем случае это будет Kate.
К сожалению, всё представленное на скриншоте богачество в оригинальной Maui доступно только в её релиз 17.3, содержащем Plasma 5.9.X, и включающем патченные версии Dolphin’а и Kate, которые могут быть запущены с правами администратора. В релизе 17.6 — Plasma 5.10.X, в котором запустить обе эти программы «от root’а» нам не удалось. Но это возможно, повторяем, в наших пересборках, построенных на базе Maui 17.03, которая, кстати, тоже пока доступна. Ну а как дело пойдёт дальше — отожмут ли разработчики KDE права root’а у пользователей окончательно, или майнтайнеры «человеческих» дистрибутивов будут их как-то поддерживать своими силами — ведомо только Ахурамазде (да и то не уверен).
Ну а пока, если уж так хочется иметь и Plasma 5.10, и полный спектр «действий от root’а» в ней — достаточно помнить, что свет не сошёлся клином на дистрибутивах семейства Ubuntu. И, в частности, в Archlinux’е и то, и другое поддерживается в образцово-показательном виде. А в таком его клоне, как Antergos (о котором немало было написано здесь) всё это хозяйство даже при минимальной установке по умолчанию работает «искаропки»:

Вероятно, есть и другие дистрибутивы, отстаивающие права применителей на привилегии root’а в KDE. В частности, по слухам, неплохо это дело поставлено в openSUSE. Так что пока можно ещё не превращаться в «юзверь дрожащую»…
How to run Dolphin as root?
I currently use Dolphin 17.04.3 and whenever I run it as sudo , it gives the following error:
without explaining why or giving an alternative.
How can I run Dolphin as root for copying or deleting files?
![]()
11 Answers 11
Short:
Dolphin 17.04
The Dolphin 17.04 or later has a check:
A workaround
You could edit the sources and disable the check. Then the Dolphin will work as before.
Dolphin 18.08
Few review request
Re-allow running Dolphin as the root user (but still not using sudo): https://phabricator.kde.org/D12795
Show a warning when running as the root user: https://phabricator.kde.org/D12732
Dolphin 18.08.0 is using these changes and the Dolphin can be launched with the pkexec command as the administrative super user.
More: KDE Foruns — How to run Dolphin 18.08 as root with Kubuntu or KDE neon? — https://forum.kde.org/viewtopic.php?f=224&t=153655
Background:
Disallow executing Dolphin as root on Linux Basically a copy of commit kate/9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e which was written by Martin Grässlin
More tips
Future
When it is ready the Dolphin will show the password query if needed. Now, with the patched Dolphin&KIO:
![]()
Not an answer, just a workaround for the purpose mentioned by the OP ( copying or deleting files ).
install another file manger that doesn’t have that limitation and that doesn’t bring a lot of dependencies
create an «Open as root» context menu in Dolphin for this other file manager.
The main file managers of other desktops can be used (Nautilus, Nemo, Caja, Thunar) but they do bring some dependencies. Even PCManFM and PCManFM-Qt do that. If you need one of those for some other purpose adding that one could be a good solution.
I have found that Krusader (which I think in the past used to be installed by default in some KDE systems) can be easily installed, brings no dependencies in Kubuntu 18.04, and can be used as root.
Under its Tools it has the «Root» option.

which asks for password in a gui.
To add a context menu in dolphin, create the folder
/.local/share/kservices5/ServiceMenus and then do
For some reason kdesu krusader doesn’t work, and I have used the solution from here.. What also works is konsole -e sudo krusader , but that shows the terminal instead of a gui for the password prompt.
Then, you’ll see in Dolphin:

bringing a dialog

which is one that works..
I have made my own version based on the replies above. So, to add a context menu to open Dolphin as root follow these steps:
-
Create a file called for example DolphinAsRoot.desktop on the directory
- If it still not appears on the context menu in Dolphin go to «Settings -> Configure Dolphin. -> Services» and activate the option you recently added. It should be there. If not, close Dolphin or even log out and in on your session.
That’s all, I hope it helps you all like it helped me 😉
![]()
Just look at the source code of kate and kwrite:
In the first lines of code directly at the start of the "main" function, you’ll find:
Dolphin is no different, except this happens in libkdeinit5_dolphin.so.
So running as root is trivial, all we need to do is skip the if uid=0 check.
The way we do this, is by perma-patching kate, kwrite and dolphin.
So, the first thing we do, is dumping the binary content to a text-file:
Now you can look at the file with gedit
/kate.txt , and if you search for getuid, you’ll find something like:
Now, on the left side, you find the memory address, after the colon (:) you’ll see the binary instruction code (hex) and to the right of that, you see the disassembly of that code (aka what it means).
Now, you see, there it calls getuid, tests if that is zero and jumps into the if-statement, that is to say if the return value is equal to zero (je: jump if equal).
Now we don’t want to jump into the if, so we just remove that crap there. But just removing that crap would change addresses by 6 bytes, trashing any relative jumps in the program in the process, and as a consequence, the program. So instead you just replace the entire length of the jump statement with NOP (short for No Operation) instructions, aka 0x90 in instruction code/hex.
So you need to replace every jump byte there with 0x90 so where you previously had
This can be done simply with a hex-editor.
So we install one:
Now in the hex editor, you search for 0f 84 e9 1e 00 00, and replace that with 90 90 90 90 90 90. If there’s only one occurency of 0f 84 e9 1e 00 00, and there is, then this is trivially simple. Just change the bytes in hex to 90 90 90 90 90 90 and save. Finished. Kate or kwrite will now open, whether you are root or not.
if you do the same with dolphin, you’ll realize objdump -Crd /usr/bin/dolphin produces a very short disassembly.
if you run ldd /usr/bin/dolphin , you’ll see dolphin loads the shared library libkdeinit5_dolphin.so
linux-vdso.so.1 (0x00007ffc2fdf0000) libkdeinit5_dolphin.so => /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so (0x00007fb54e76c000)
So you do the objdump on libkdeinit5_dolphin.so:
Now open the objdump: gedit
Search for getuid, and you’ll see that one of the search results is:
This is great, you see, more crap just like in kate and kwrite.
Now open /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so in your hex-editor, search for 0f 84 58 1a 00 00 and replace it with 90 90 90 90 90 90 .
Hit save, and done.
Dolphin now runs as root.
Note: Good idea to make a backup copy of the files you modify, just in case you f*** up.
Also, you could just download the source of kate, kwrite, and dolphin, remove that crap from the source code, compile and install. But since the stupid cmake system is missing some crappy crap template for some stupid crap such as icons, probably because the repo-supplied cmake is too old, this doesn’t work. Too bad, would have been too simple if it just worked, wouldn’t it.
But just patching the executables as I described is faster, so who cares anyway.
You see, it’s not straightforward, but it’s trivial.
PS:
Now, any time kate, kwrite or dolphin are updated via apt, your changes will be overwritten. You’ll need to re-apply them. I’ll leave automatizing the patch-process in your more than capable hands, and your programming language of joice 😉
Can this be done in pure bash ?
Also, if you want to patch vlc for the same crap, you can do it with sed:
Just put that sed-statement into a script, so you can re-apply, if you ever need to if you are offline and have no internet access.
Happy hacking — with kate, kwrite and dolphin — as root — while watching/listening to something on vlc.
PS2:
The crappy root checks went the way of the Dodo in KDE v19.04.
Who said nevolution was a bad thing.
To progress — Cheers !