Obecnie używam dolphin 17.04.3
i za każdym razem, gdy uruchamiam go jako sudo, pojawia się następujący błąd
Executing Dolphin as root is not possible.
bez wyjaśnienia przyczyny lub podania alternatywy. Jak mogę uruchomić delfina jako root do kopiowania lub usuwania plików?
14
Odpowiedzi:
Krótki:
Delfin 17.04
Dolphin 17.04 lub nowszy ma czek:
Obejście
Możesz edytować źródła i wyłączyć sprawdzanie. Wtedy Delfin będzie działał jak poprzednio.
Delfin 18.08
Mało prośby o sprawdzenie
Ponownie zezwól na uruchamianie Dolphin jako użytkownik root (ale nadal nie używa sudo): https://phabricator.kde.org/D12795
Pokaż ostrzeżenie podczas uruchamiania jako użytkownik root: https://phabricator.kde.org/D12732
Dolphin 18.08.0 używa tych zmian, a Dolphin można uruchomić za pomocą komendy pkexec jako superużytkownik administracyjny.
Więcej: KDE Foruns - Jak uruchomić Dolphin 18.08 jako root z Kubuntu lub KDE neon? - https://forum.kde.org/viewtopic.php?f=224&t=153655
Tło:
Wcześniej - Fora KDE - Jak uruchomić Dolphin jako root ?: https://forum.kde.org/viewtopic.php?f=224&t=141836
Ze względów bezpieczeństwa: nie zezwalaj na uruchamianie Dolphin jako root w systemie Linux - https://cgit.kde.org/dolphin.git/commit/?id=0bdd8e0b0516555c6233fdc7901e9b417cf89
Zabroń wykonywania Kate i Kwrite jako root w systemie Linux: https://phabricator.kde.org/R40:9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e
Więcej porad
KDE Reddit - root delfinów w aplikacji KDE 17.04: https://www.reddit.com/r/kde/comments/6785b1/dolphin_root_on_kde_app_1704/
Ominięcie „Wykonywanie Dolphin jako root nie jest możliwe” i odzyskanie uprawnień rootowania KDE Dolphin: https://www.reddit.com/r/kde/comments/6xs3mp/bypass_executing_dolphin_as_root_is_not_possible/
Przyszłość
Obsługa Polkit w KIO: https://phabricator.kde.org/T6561
Gdy będzie gotowy, Dolphin wyświetli zapytanie o hasło, jeśli to konieczne. Teraz z łatką Dolphin & KIO:
źródło
Nie odpowiedź, tylko obejście dla celu wspomnianego przez OP (
copying or deleting files
).Chodzi o to, aby
zainstaluj inny menedżer plików, który nie ma tego ograniczenia i nie przynosi wielu zależności
utwórz menu kontekstowe „Otwórz jako root” w programie Dolphin dla tego innego menedżera plików.
Można używać głównych menedżerów plików innych komputerów stacjonarnych (Nautilus, Nemo, Caja, Thunar), ale powodują one pewne zależności. Robią to nawet PCManFM i PCManFM-Qt. Jeśli potrzebujesz jednego z nich w innym celu, dodaj, że może być dobrym rozwiązaniem.
Odkryłem, że Krusader (który myślę, że kiedyś był instalowany domyślnie w niektórych systemach KDE) może być łatwo zainstalowany, nie powoduje żadnych zależności w Kubuntu 18.04 i może być używany jako root.
W swoich Narzędziach ma opcję „Root”.
który prosi o hasło w GUI.
Aby dodać menu kontekstowe w delfinie, utwórz folder,
~/.local/share/kservices5/ServiceMenus
a następnie zróbi dodaj
Z jakiegoś powodu
kdesu krusader
nie działa, i użyłem roztwór z tutaj .. Co działa też jestkonsole -e sudo krusader
, ale to pokazuje terminal zamiast GUI dla hasła szybka.Następnie zobaczysz w Dolphin:
prowadzenie dialogu
który działa ..
źródło
Stworzyłem własną wersję na podstawie powyższych odpowiedzi. Aby dodać menu kontekstowe, aby otworzyć Dolphin jako root, wykonaj następujące kroki:
DolphinAsRoot.desktop
W katalogu~/.local/share/kservices5/ServiceMenus/
To wszystko, mam nadzieję, że to pomoże wam wszystkim, tak jak pomogło mi;)
źródło
Wszystko, co zrobiłem, to dodanie terminala do paska narzędzi (chociaż skrót klawiaturowy jest związany z klawiszem F4) i skorzystałem z wiersza poleceń, aby wykonać operacje tak sudo, jak to konieczne.
Podoba mi się
Tak, to może nie być tak wygodne, ale zmusza cię do rozpoczęcia nauki wiersza poleceń, jednocześnie dając wizualną reprezentację tego, jak naprawdę działa to polecenie.
To jest na Arch, ale funkcjonalność powinna być taka sama na Ubuntu. Mam nadzieję, że to pomogło.
źródło
oto obejście dla Dolphin 17.x:
dostać
libkdeinit5_dolphin.so
od tutajPrzetestowany przeze mnie działa dobrze w Ubuntu bionic.
źródło
źródło
To banalne!
Wystarczy spojrzeć na kod źródłowy Kate i Kwrite:
W pierwszych wierszach kodu bezpośrednio na początku funkcji „głównej” znajdziesz:
Delfin nie jest inny, z wyjątkiem tego, co dzieje się w libkdeinit5_dolphin.so.
Więc uruchamianie jako root jest banalne, wystarczy, że pomiń sprawdzanie if uid = 0.
Sposób, w jaki to robimy, polega na łączeniu kate, kwrite i delfina z perma.
Pierwszą rzeczą, którą robimy, jest zrzut zawartości binarnej do pliku tekstowego:
Teraz możesz spojrzeć na plik za pomocą
gedit ~/kate.txt
, a jeśli szukasz getuid, znajdziesz coś takiego:Teraz po lewej stronie znajduje się adres pamięci, po dwukropku (:) zobaczysz kod instrukcji binarnej (hex), a po prawej stronie zobaczysz dezasemblację tego kodu (czyli co to znaczy) .
Teraz widzisz, tam wywołuje getuid, sprawdza, czy jest to zero i przeskakuje do instrukcji if, to znaczy, czy zwracana wartość jest równa zero (je: jump if if).
Teraz nie chcemy wskakiwać do if, więc po prostu usuwamy te badziewia. Ale samo usunięcie tego badziewia zmieniłoby adresy o 6 bajtów, niszcząc wszelkie względne skoki w programie w procesie, aw konsekwencji program. Więc zamiast po prostu zastąpić całą długość rachunku skoku z NOP (skrót N ö op chłodnika) instrukcje, aka 0x90 w instrukcji / kod hex.
Musisz więc zastąpić każdy bajt skoku tam 0x90, tak jak poprzednio
będziesz miał
Można to zrobić po prostu za pomocą edytora szesnastkowego.
Więc instalujemy jeden:
Teraz w edytorze szesnastkowym wyszukujesz 0f 84 e9 1e 00 00 i zamieniasz je na 90 90 90 90 90 90 90. Jeśli jest tylko jedno wystąpienie 0f 84 e9 1e 00 00 i jest, to jest to banalnie proste. Po prostu zmień bajty szesnastkowe na 90 90 90 90 90 90 i zapisz. Skończone. Kate lub kwrite otworzą się teraz, bez względu na to, czy jesteś rootem, czy nie.
jeśli zrobisz to samo z delfinem, zdasz sobie sprawę, że
objdump -Crd /usr/bin/dolhin
powoduje bardzo krótki demontaż.jeśli uruchomisz
ldd /usr/bin/dolphin
, zobaczysz, że delfin ładuje bibliotekę współdzieloną libkdeinit5_dolphin.soWięc robisz objdump na libkdeinit5_dolphin.so:
Teraz otwórz objdump:
gedit ~/libkdeinit5_dolphin.txt
Wyszukaj getuid, a zobaczysz, że jeden z wyników wyszukiwania to:
Widzisz, jest to świetne bzdury, tak jak w przypadku Kate i Kwrite.
Teraz otwórz
/usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so
w edytorze szesnastkowym, wyszukaj0f 84 58 1a 00 00
i zamień na90 90 90 90 90 90
.Naciśnij Zapisz i gotowe.
Dolphin działa teraz jako root.
Uwaga: dobrym pomysłem jest utworzenie kopii zapasowej modyfikowanych plików, na wypadek, gdybyś się pieprzył.
Możesz także pobrać źródło Kate, Kwrite i Dolphin, usunąć te bzdury z kodu źródłowego, skompilować i zainstalować. Ale ponieważ w głupim systemie cmake brakuje jakiegoś gównianego badziewia dla jakiegoś głupiego badziewia, takiego jak ikony, prawdopodobnie dlatego, że cmake dostarczany przez repozytorium jest za stary, to nie działa. Szkoda, byłoby zbyt proste, gdyby po prostu działało, prawda?
Ale łatanie plików wykonywalnych, tak jak to opisałem, jest szybsze, więc kogo to obchodzi.
Widzisz, to nie jest proste, ale jest banalne.
PS:
Teraz, za każdym razem, gdy Kate, Kwrite lub Delfin są aktualizowane przez apt, twoje zmiany zostaną nadpisane. Musisz je ponownie zastosować. Opuszczę automatyzację procesu łatania w twoich więcej niż zdolnych rękach i twoim języku programowania joice;)
Czy można to zrobić w czystym stylu?
Ponadto, jeśli chcesz załatać VLC dla tego samego badziewia, możesz to zrobić za pomocą sed:
Wystarczy umieścić tę instrukcję sed w skrypcie, abyś mógł ją ponownie złożyć, jeśli zajdzie taka potrzeba, jeśli jesteś offline i nie masz dostępu do Internetu.
Szczęśliwego hakowania - z Kate, Kwrite i delfinem - jako rootem - podczas oglądania / słuchania czegoś na VLC.
PS2:
Wstrętne kontrole rootów poszły w kierunku Dodo w KDE v19.04.
Kto powiedział, że n ewolucja było złe.
Do postępu - Pozdrawiam!
źródło
Nie rozwiązanie, ale sugestia ... Zmiana Delfina i plików jest dość ryzykowna. Double Commander to doskonała alternatywa, którą można znaleźć w repozytorium. Zainstaluje się bez rootowania. Aby uzyskać root, po prostu wpisz „sudo doublecmd” w terminalu. Ma wiele zalet podczas pracy z dużymi i milionami plików.
źródło