В настоящее время я использую, dolphin 17.04.3
и всякий раз, когда я запускаю его как sudo, он выдает следующую ошибку
Executing Dolphin as root is not possible.
без объяснения причин или альтернативы. Итак, как я могу запустить дельфина как root для копирования или удаления файлов?
14
Ответы:
Короткий:
Дельфин 17.04
У Дельфина 17.04 или позже есть проверка:
Обходной путь
Вы можете редактировать источники и отключить проверку. Тогда Дельфин будет работать как прежде.
Дельфин 18.08
Несколько запросов на рассмотрение
Повторно разрешите запуск Dolphin от имени пользователя root (но все еще не используете sudo): https://phabricator.kde.org/D12795
Показывать предупреждение при запуске от имени пользователя root: https://phabricator.kde.org/D12732
Dolphin 18.08.0 использует эти изменения, и Dolphin можно запустить с помощью команды pkexec от имени администратора.
Подробнее: KDE Foruns - Как запустить Dolphin 18.08 от имени root с помощью Kubuntu или KDE neon? - https://forum.kde.org/viewtopic.php?f=224&t=153655
Фон:
Ранее - Форумы KDE - Как запустить Dolphin от имени пользователя root: https://forum.kde.org/viewtopic.php?f=224&t=141836
По соображениям безопасности: запретить запуск Dolphin от имени root в Linux - https://cgit.kde.org/dolphin.git/commit/?id=0bdd8e0b0516555c6233fdc7901e9b417cf89
Запретить выполнение kate и kwrite от имени root в Linux: https://phabricator.kde.org/R40:9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e
Дополнительные советы
KDE Reddit - Корень дельфина в приложении KDE 17.04: https://www.reddit.com/r/kde/comments/6785b1/dolphin_root_on_kde_app_1704/
Обойти «Выполнение Dolphin от имени root невозможно» и восстановить привилегии KDE Dolphin Root: https://www.reddit.com/r/kde/comments/6xs3mp/bypass_executing_dolphin_as_root_is_not_possible/
Будущее
Поддержка Polkit в KIO: https://phabricator.kde.org/T6561
Когда он будет готов, Dolphin покажет запрос пароля, если это необходимо. Теперь с исправленными Dolphin & KIO:
источник
Не ответ, просто обходной путь для цели, указанной в OP (
copying or deleting files
).Идея состоит в том, чтобы
установить другой менеджер файлов, который не имеет такого ограничения и который не приносит много зависимостей
создайте контекстное меню «Открыть как корень» в Dolphin для этого другого файлового менеджера.
Можно использовать основные файловые менеджеры других рабочих столов (Nautilus, Nemo, Caja, Thunar), но они имеют некоторые зависимости. Даже PCManFM и PCManFM-Qt делают это. Если вам нужен один из них для каких-то других целей, добавьте, что это может быть хорошим решением.
Я обнаружил, что Krusader (который, как мне кажется, раньше устанавливался по умолчанию в некоторых системах KDE), можно легко установить, он не содержит никаких зависимостей в Kubuntu 18.04 и может использоваться в качестве пользователя root.
Под инструментами у него есть опция «Root».
который просит пароль в графическом интерфейсе.
Чтобы добавить контекстное меню в Dolphin, создайте папку
~/.local/share/kservices5/ServiceMenus
и затем выполнитеи добавить
По какой-то причине
kdesu krusader
не работает, и я использовал решение отсюда .. То, что также работаетkonsole -e sudo krusader
, но это показывает терминал вместо графического интерфейса пользователя для запроса пароля.Тогда вы увидите в Dolphin:
принося диалог
который работает ..
источник
Я сделал свою собственную версию, основанную на ответах выше. Итак, чтобы добавить контекстное меню, чтобы открыть Dolphin от имени пользователя root, выполните следующие действия:
DolphinAsRoot.desktop
в каталоге~/.local/share/kservices5/ServiceMenus/
Вот и все, я надеюсь, что это поможет вам всем, как это помогло мне;)
источник
Все, что я сделал, это добавил терминал на панель инструментов (хотя комбинация клавиш привязана к F4) и использовал командную строку для выполнения операций sudo по мере необходимости.
Вот так
Да, это может быть не так удобно, но вынуждает вас начать изучать командную строку, одновременно давая вам визуальное представление о том, как на самом деле работает команда.
Это на Arch, но функциональность должна быть такой же на Ubuntu. Надеюсь, что это помогло.
источник
вот обходной путь для Dolphin 17.x:
получить
libkdeinit5_dolphin.so
от сюдаПротестировано мной, он отлично работает в Ubuntu Bionic.
источник
источник
Это тривиально!
Просто посмотрите на исходный код kate и kwrite:
В первых строках кода непосредственно в начале «основной» функции вы найдете:
Dolphin ничем не отличается, за исключением того, что это происходит в libkdeinit5_dolphin.so.
Так что запуск от имени root тривиален, все, что нам нужно сделать, это пропустить проверку if uid = 0.
То, как мы это делаем, - это исправление perma-patching kate, kwrite и dolphin.
Итак, первое, что мы делаем, это дамп двоичного содержимого в текстовый файл:
Теперь вы можете посмотреть файл с помощью
gedit ~/kate.txt
, и если вы ищете getuid, вы найдете что-то вроде:Теперь, с левой стороны, вы найдете адрес памяти, после двоеточия (:) вы увидите двоичный код инструкции (шестнадцатеричный), а справа от него вы увидите разборку этого кода (то есть, что это значит) ,
Теперь, вы видите, там он вызывает getuid, проверяет, равен ли он нулю, и переходит в оператор if, то есть, если возвращаемое значение равно нулю (je: jump, если равно).
Теперь мы не хотим прыгать в if, поэтому просто удалим это дерьмо. Но простое удаление этого дерьма изменило бы адреса на 6 байтов, уничтожив любые относительные скачки в программе в процессе и, как следствие, в программе. Так что вместо того, чтобы просто заменить всю длину заявления прыжка с NOP (сокращенно N O Op чество) инструкции, ака 0x90 в инструкции кода / гекс.
Таким образом, вам нужно заменить каждый байт перехода на 0x90, где вы ранее имели
у тебя будет
Это можно сделать просто с помощью hex-редактора.
Итак, мы устанавливаем один:
Теперь в шестнадцатеричном редакторе вы ищете 0f 84 e9 1e 00 00 и заменяете его на 90 90 90 90 90 90. Если есть только один случай 0f 84 e9 1e 00 00, и это так, то это тривиально просто. Просто измените байты в шестнадцатеричном виде на 90 90 90 90 90 90 и сохраните. Законченный. Kate или kwrite теперь будут открыты независимо от того, являетесь ли вы пользователем root или нет.
если вы сделаете то же самое с дельфином, вы поймете, что
objdump -Crd /usr/bin/dolhin
производит очень короткую разборку.если вы запустите
ldd /usr/bin/dolphin
, вы увидите, что dolphin загружает общую библиотеку libkdeinit5_dolphin.soИтак, вы делаете objdump для libkdeinit5_dolphin.so:
Теперь откройте objdump:
gedit ~/libkdeinit5_dolphin.txt
Выполните поиск 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
.Хит сохранить, и готово.
Дельфин теперь работает как корень.
Примечание. Хорошая идея - сделать резервную копию файлов, которые вы изменяете, на всякий случай.
Кроме того, вы можете просто загрузить исходный код kate, kwrite и dolphin, удалить это дерьмо из исходного кода, скомпилировать и установить. Но так как в тупой системе cmake отсутствует какой-то дерьмовый шаблон дерьма для некоторых глупых дерьмов, таких как значки, возможно, потому что поставляемый репозиторием cmake слишком стар, это не работает. Жаль, было бы слишком просто, если бы это просто сработало, не так ли?
Но просто исправление исполняемых файлов, как я описал, происходит быстрее, так что кому все равно.
Видите ли, это не просто, но тривиально.
PS:
теперь, каждый раз, когда kate, kwrite или dolphin обновляются через apt, ваши изменения будут перезаписаны. Вам нужно будет повторно применить их. Я оставлю автоматизацию процесса патча в ваших более чем способных руках, и ваш язык программирования joice;)
Можно ли это сделать в чистом виде?
Также, если вы хотите исправить vlc для того же дерьма, вы можете сделать это с помощью sed:
Просто поместите это sed-выражение в скрипт, чтобы вы могли повторно подать заявку, если вам когда-либо понадобится, если вы не в сети и не имеете доступа в Интернет.
Удачного взлома - с kate, kwrite и dolphin - с правами root - во время просмотра / прослушивания чего-либо на vlc.
PS2:
дерьмовые проверки корня пошли по пути Dodo в KDE v19.04.
Кто сказал, что русская эволюция была плохой вещью.
Для прогресса - ура!
источник
Не решение, а предложение .... Изменение Dolphin и файлов довольно рискованно. Double Commander является отличной альтернативой и находится в репозитории. Он будет установлен без прав root. Чтобы получить root, просто введите «sudo doublecmd» в терминал. Он имеет много преимуществ при работе с большими и миллионами файлов.
источник