Как открыть папку с правами root в linux manjaro kde

Обновлено: 04.07.2024

В настоящее время я использую, dolphin 17.04.3 и всякий раз, когда я запускаю его как sudo, он выдает следующую ошибку Executing Dolphin as root is not possible. без объяснения причин или альтернативы. Итак, как я могу запустить дельфина как root для копирования или удаления файлов?

Вы используете Wayland? по умолчанию wayland не позволяет программам с графическим интерфейсом работать от имени пользователя root. не работает возможность создавать или перемещать файлы просто неактивна в контекстном меню. Пожалуйста, проверьте свою версию «Так как я могу запустить дельфина как root для копирования или удаления файлов?» Пожалуйста, переоцените этот вопрос. Используйте командную строку для задач администратора. Это там специально для задач администратора. Графические инструменты не должны использоваться для задач администратора. Запуск графических инструментов в качестве администратора имеет непредвиденные побочные эффекты в отношении разрешений, и в последнее время считается, что разработчики активно блокируют его. Вы действительно думаете, что это хорошая идея - идти против людей, которые знают (или должны знать;)), что именно может делать инструмент для работы с графическими файлами?

Короткий:

Дельфин 17.04

У Дельфина 17.04 или позже есть проверка:

Обходной путь

Вы можете редактировать источники и отключить проверку. Тогда Дельфин будет работать как прежде.

Дельфин 18.08

Несколько запросов на рассмотрение

Dolphin 18.08.0 использует эти изменения, и Dolphin можно запустить с помощью команды pkexec от имени администратора.

Фон:

Запретить выполнение Dolphin от имени пользователя root в Linux. В основном, это копия commit kate / 9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e, написанная Мартином Грисслином

Дополнительные советы

Будущее

Когда он будет готов, Dolphin покажет запрос пароля, если это необходимо. Теперь с исправленными Dolphin & KIO:

Не могли бы вы подробнее рассказать о «По соображениям безопасности»? Итак, простой ответ: «Вы не можете запустить Dolphin от имени пользователя root, если не установите исправленную версию»?

Не ответ, просто обходной путь для цели, указанной в 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 в каталоге

  • Если он все еще не отображается в контекстном меню в Dolphin, перейдите в «Настройки -> Настроить Dolphin . -> Службы» и активируйте опцию, которую вы недавно добавили. Это должно быть там. Если нет, закройте Dolphin или даже выйдите и войдите в свой сеанс.

Вот и все, я надеюсь, что это поможет вам всем, как это помогло мне;)

Все, что я сделал, это добавил терминал на панель инструментов (хотя комбинация клавиш привязана к 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

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 .
Хит сохранить, и готово.

Дельфин теперь работает как корень.

Примечание. Хорошая идея - сделать резервную копию файлов, которые вы изменяете, на всякий случай.

Кроме того, вы можете просто загрузить исходный код kate, kwrite и dolphin, удалить это дерьмо из исходного кода, скомпилировать и установить. Но так как в тупой системе cmake отсутствует какой-то дерьмовый шаблон дерьма для некоторых глупых дерьмов, таких как значки, возможно, потому что поставляемый репозиторием cmake слишком стар, это не работает. Жаль, было бы слишком просто, если бы это просто сработало, не так ли?

Но просто исправление исполняемых файлов, как я описал, происходит быстрее, так что кому все равно.

Видите ли, это не просто, но тривиально.

PS:
теперь, каждый раз, когда kate, kwrite или dolphin обновляются через apt, ваши изменения будут перезаписаны. Вам нужно будет повторно применить их. Я оставлю автоматизацию процесса патча в ваших более чем способных руках, и ваш язык программирования joice;)

Можно ли это сделать в чистом виде?

Просто поместите это sed-выражение в скрипт, чтобы вы могли повторно подать заявку, если вам когда-либо понадобится, если вы не в сети и не имеете доступа в Интернет.

Удачного взлома - с kate, kwrite и dolphin - с правами root - во время просмотра / прослушивания чего-либо на vlc.

PS2:
дерьмовые проверки корня пошли по пути Dodo в KDE v19.04.
Кто сказал, что русская эволюция была плохой вещью.
Для прогресса - ура!

Как вы знаете, Linux очень серьезно относится к управлению пользователями и предоставлению им прав на работу с системой. Обычный пользователь может записывать файлы только в свой каталог и каталог /tmp/. Также есть возможность читать некоторые файлы в корневой файловой системе. Но вы не можете устанавливать программы, ведь для этого нужно право на запись, не можете изменять атрибуты файлов, не можете запускать сервисы, не можете читать некоторые файлы логов и еще много чего не можете.

В Linux управлять корневой файловой системой и создавать там файлы имеет право только пользователь root.

В этой статье мы рассмотрим какие программы нужны для того, чтобы получить права root пользователя linux, как они работают, как выполнять программу с правами root от обычного пользователя и как запускать графические программы с правами root. А также выясним что такое sudo в чем разница su или sudo.

Права суперпользователя в Linux

Очень долго перечислять чего не может обычный пользователь Linux, проще сказать на что у него есть право, а именно при стандартной настройке полномочий для файлов в Linux, обычный пользователь может:

  • Читать, писать и изменять атрибуты файлов в своем каталоге
  • Читать, писать, изменять атрибуты файлов в каталоге /tmp
  • Выполнять программы там, где это не запрещено с помощью флага noexec
  • Читать файлы, для которых установлен флаг чтения для всех пользователей.

Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.

Чтобы войти под пользователем root можно переключиться в одну из виртуальных консолей, например, с помощью сочетания клавиш Ctrl+Alt+F1 и затем ввести логин root и пароль root пользователя.

Вы получите полноценное окружение root с возможностью выполнять все действия, но такой способ очень непрактичный, так как вы теряете все преимущества использования графического интерфейса.

Можно поступить полностью противоположным путем, ввести логин root и его пароль в графическом менеджере входа, чтобы окружение рабочего стола работало от имени root, и мы получаем все права root linux, но такой вариант крайне не рекомендованный, и очень опасный, вы можете случайно повредить всю систему. Поэтому этот способ был отключен во многих менеджерах входа.

Переключение на суперпользователя в терминале

Теперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:

$ su опции пользователь

Вот ее основные опции:

  • -c, --command - выполнить команду
  • -g, --group - установить основную группу пользователя (только для root)
  • -G --supp-group - дополнительные группы пользователя (только для root)
  • -, -l, --login - режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог
  • -p, --preserve-environment - сохранить переменные окружения
  • -s, --shell - задать оболочку для входа
  • --version - отобразить версию программы.

Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.

Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда:

Теперь смотрим что получилось:

whoami
pwd
echo $VAR
echo $PATH
exit

sudo

Из этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.

Теперь используем вход в режиме логина:

И повторим ту же комбинацию:

whoami
pwd
echo $VAR
echo $PATH
exit

sudo1

Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p:

sudo2

Как видите, наша переменная осталась. Вы также можете переключится на любого другого пользователя. Например:

sudo3

Более подробно о команде su вы можете почитать в отдельной статье. Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.

Получение прав root без переключения

Чтобы реализовать максимально безопасный интерфейс для работы с правами суперпользователя в Linux была разработана команда sudo. Давайте рассмотрим что такое sudo. Эта команда пишется перед каждой командой, которую нужно выполнить от имени суперпользователя, и для ее выполнения нужно ввести пароль уже не root, а всего лишь вашего пользователя. Так же, как и в предыдущей, в этой утилиты есть свои опции. Сначала рассмотрим синтаксис:

$ sudo опции команда

  • -b - выполнять запускаемую утилиту в фоне
  • -E - сохранить переменные окружения
  • -g - запустить команду от группы
  • -H - использовать домашний каталог
  • -l - показать список полномочий в sudo для текущего пользователя
  • -r - использовать для команды роль SELinux
  • -s - использовать оболочку
  • -u - запустить команду от имени пользователя, если не задано используется root
  • -i - не выполнять команду, а войти в оболочку, эквивалентно su -

Вы можете выполнить те же эксперименты, только для этой команды, чтобы понять как использовать команду sudo. Например:

Использование sudo - это рекомендованный способ выполнять команды от имени суперпользователя в Linux. Так вы не забудете с чем имеете дело и меньше всего рискуете повредить систему. Более подробно о команде sudo читайте здесь. Но остался еще один нерешенный вопрос - как быть с графическими утилитами? Ведь команда sudo их не запускает, а запускать графическую оболочку от имени root небезопасно. Это мы и рассмотрим далее.

Графически приложения от имени суперпользователя

Для запуска графических приложений от имени суперпользователя существуют специальные утилиты. Они сохраняют все необходимые переменные окружения и полномочия. В KDE это команда kdesu, а в Gnome команда gksu.

Просто наберите gksu или kdesu, а затем нужную команду:

Эта команда запустит файловый менеджер KDE с правами суперпользователя. В Gnome это будет выглядеть вот так:

Программа запросит пароль, уже в графическом окне, а потом откроется файловый менеджер.

Выводы

Вот и все. Теперь вы знаете как получить права суперпользователя в Linux, знаете как использовать команду sudo и в чем разница sudo или su. Теперь программы, требующие дополнительных привилегий в системе, не вызовут у вас проблем. Если остались вопросы, пишите в комментариях!

root в Linux

Для запуска и корректной работы различных административных консольных и графических программ в GNU-Linux (просто Linux далее) могут потребоваться права администратора. Получить права root их можно при помощи нескольких основных способов.

Команда su , отданная в консоли Linux вызовет запрос пароля администратора root компьютера и, после его ввода, Ваш вход с правами администратора компьютера в той же консольной сессии. Это даёт возможность работать далее от имени администратора системы с любыми консольными командами и программами.

Во многих современных дистрибутивах Linux, созданных для использования на персональном компьютере в первую очередь (Ubuntu Linux, например), авторизация администратора root бывает заблокирована, а пользователь root может отсутствовать в системе как таковой. В этом случае используйте алгоритм, не предусматривающий авторизации администратора root как такового - режим "Super User Do" (sudo)".

Настоятельно не рекомендуется запускать графическую систему X11, рабочие столы Gnome, KDE и т.п. от имени администратора: это может стать угрозой безопасности ваших данных и, часто, причиной некорректной работы операционной системы.

Права администратора без авторизации администратора root - режим "Super User Do" (sudo)

Команда sudo , в качестве приставки к имени основной программы, предоставляет возможность пользователю выполнять команды от имени администратора, не авторизуясь непосредственно как root. В большинстве случаев наличие в системе настроенного режима sudo делает работу от имени администратора практически ненужной, а паролем для запуска sudo чаще всего становится пароль первого созданного в системе пользователя ("sudoer'а").

Запуск программ с правами администратора root из графического диалога

Для того, чтобы запускать программы от имени администратора root, в том числе и в основном графические, можно использовать графические же утилиты kdesudo (программа, написанная на Qt для KDE) и gksu (программа с GTK-интерфейсом для Gnome, XFCE и т.п.). Использовать оба варианта запуска графических программ от имени администратора очень просто: через консоль путём ввода приставки kdesudo (или gksu ) перед именем программы, как в случае с sudo : gksu synaptic

Коллекция материалов по работе с системой Linux С наступающим Новым годом!

вторник, 29 июля 2014 г.

Как добавить действия от Root(от администратора) в KDE,Plasma

Установив операционную систему на KDE или окружение рабочего стола Plasma(аналог KDE) сталкиваемся с проблемой допуска к системным файлам для администрирования и отсутствием в контекстном меню строки открыть от Администратора(действия Root)

Решается проблема одним из методов в файловом менеджереDolphin,установленным в этом окружении по умолчанию.

Просто нужно установить дополнительно плагин Simple Root Actions Menu.

Для этого заходим в настройки Dolphin переходим в Действия ,жмём Загрузить новые действия.В открывшемся окне ищем нужную кандидатуру плагина и нажимаем на кнопку Установить.Подтверждаем.Теперь на месте плагина появилась надпись Удалить.

Плагин установлен,в контекстном меню появилась соответствующая строка, жизнь админа облегчена!

Но!Бывает,что при работе с системными файлами всплывает предупреждение об отсутствии пакета :

Если установка не будет выполнена(как это случилось у меня),то запустить установку из Центра приложений.

После этого я получил возможность изменять права системных папок.

Комментариев нет:

Поиск по этому блогу

Понравилось?Поделись с друзьями!

Архив блога



Viber является кросс-платформенным приложением (iPhone, Android, Windows Phone, Blackberry, Windows, Mac, Symbian, Nokia и устройства .



Консольные команды бывают иногда очень полезными (даже для обычных пользователей, которые не любят терминал), в том числе и для новичк.



Читайте также: