rootとしてDolphinを実行するには?


14

私は現在使用してdolphin 17.04.3おり、sudoとして実行するときはいつでも、Executing Dolphin as root is not possible.理由を説明したり代替案を提供したりせずに次のエラー を出します。では、どうすればイルカをrootとして実行して、ファイルをコピーまたは削除できますか?


どのバージョンのUbuntuを使用していますか?
ジョージウドセン2017

1
ウェイランドを使っていますか?デフォルトでは、waylandはGUIプログラムをrootとして実行することを許可していません。
ravery

動作しません。ファイルを作成または移動するオプションは、コンテキストメニューでグレー表示されます。バージョンを確認してください
Ankur S 2017

私はKDEでのUbuntu 17.10とX11をインストールして使用している
はAnkur S

2
「では、どうすればイルカをrootとして実行して、ファイルをコピーまたは削除できますか?」この質問を再評価してください。管理タスクにはコマンドラインを使用します。それは特に管理タスクのためにあります。グラフィカルツールを管理タスクに使用しないでください。管理者としてグラフィカルツールを実行すると、権限に関する目に見えない副作用があり、最近では、開発者が積極的にブロックするようになっています。グラフィカルファイル操作ツールで何ができて何ができるかを正確に知っている(または知っているはずです)人に反対するのは良い考えだと本当に思いますか?
Rinzwind 2017

回答:


11

ショート:

イルカ17.04

Dolphin 17.04以降にはチェックがあります:

if uid == 0 then show the "Executing Dolphin as root is not possible." and exit.

回避策

ソースを編集してチェックを無効にすることができます。その後、イルカは以前のように動作します。

イルカ18.08

レビューリクエストがほとんどありません

Dolphin 18.08.0はこれらの変更を使用しており、Dolphinは管理スーパーユーザーとしてpkexecコマンドを使用して起動できます。

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true dolphin

詳細:KDE Foruns-Dolphin 18.08をKubuntuまたはKDEネオンでrootとして実行する方法は?-https://forum.kde.org/viewtopic.php?f = 224&t = 153655

ここに画像の説明を入力してください

バックグラウンド:

以前-KDEフォーラム-Dolphinをrootとして実行する方法:https ://forum.kde.org/viewtopic.php?f = 224 & t =141836

セキュリティ上の理由から:LinuxでrootとしてDolphinを実行することを許可しない-https://cgit.kde.org/dolphin.git/commit/ ?id = 0bdd8e0b0516555c6233fdc7901e9b417cf89

LinuxでルートとしてDolphinを実行することを許可しない

Linuxでkateおよびkwriteをrootとして実行することを禁止します。https://phabricator.kde.org/R40:9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e

その他のヒント

KDE Reddit-KDEアプリ17.04のDolphinルート:https : //www.reddit.com/r/kde/comments/6785b1/dolphin_root_on_kde_app_1704/

「Dolphinをrootとして実行することはできません」をバイパスし、KDE ​​Dolphinのルート権限を取り戻します:https : //www.reddit.com/r/kde/comments/6xs3mp/bypass_executing_dolphin_as_root_is_not_possible/

未来

KIOでのPolkitサポート:https : //phabricator.kde.org/T6561

準備ができると、Dolphinは必要に応じてパスワードクエリを表示します。パッチを当てたDolphin&KIOを使用して:

ここに画像の説明を入力してください


1
「セキュリティ上の理由から」についてもう少し詳しく教えてください。
ジムマクアダムス2018

あなたは読みましたphabricator.kde.org/...を。同じ/詳細:MartinGrässlin-
user26687

だから、簡単な答えは「パッチを適用したバージョンをインストールしない限り、Dolphinをrootとして実行することはできない」ということです。

@ user47206:自分でパッチしてみませんか?;)以下の私の答えをご覧ください!
WitchCraft、

10

答えではなく、OP(copying or deleting files)で言及されている目的のための回避策です。

アイデアは

  1. その制限がなく、多くの依存関係をもたらさない別のファイルマネージャーをインストールします

  2. Dolphinでこの他のファイルマネージャ用に「Open as root」コンテキストメニューを作成します。

他のデスクトップのメインファイルマネージャー(Nautilus、Nemo、Caja、Thunar)を使用できますが、いくつかの依存関係があります。PCManFMやPCManFM-Qtでもそれが可能です。他の目的でそれらのいずれかが必要な場合は、それを追加するとよい解決策になる可能性があります。

Krusader(以前は一部のKDEシステムにデフォルトでインストールされていたと思います)は簡単にインストールでき、Kubuntu 18.04に依存関係がなく、ルートとして使用できることがわかりました。

sudo apt install krusader

そのツールの下には、「ルート」オプションがあります。

ここに画像の説明を入力してください

GUIでパスワードを要求します。

イルカにコンテキストメニューを追加するには、フォルダー~/.local/share/kservices5/ServiceMenusを作成してから

kate ~/.local/share/kservices5/ServiceMenus/filemanager_root.desktop

そして追加

[Desktop Action root]
Exec=/usr/lib/kde4/libexec/kdesu krusader
Icon=dolphin
Name=Open in Krusader file manger as administrator

[Desktop Entry]
Actions=root
Icon=krusader_root
MimeType=inode/directory
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel
X-KDE-StartupNotify=false

どういうkdesu krusaderわけか機能しません、そして私はここからの解決策を使用しました ..これも機能しますがkonsole -e sudo krusader、それはパスワードプロンプトのGUIの代わりに端末を示しています。

次に、イルカに表示されます。

ここに画像の説明を入力してください

対話をもたらす

ここに画像の説明を入力してください

これは機能するものです。


4

上記の回答に基づいて、独自のバージョンを作成しました。したがって、コンテキストメニューを追加してルートとしてDolphin開くには、次の手順に従います。

  • たとえばDolphinAsRoot.desktopディレクトリにというファイルを作成します~/.local/share/kservices5/ServiceMenus/
  • テキストエディタを使用して、次のコンテンツを配置します。
[Desktop Entry]
Actions=root
Icon=system-file-manager-root
MimeType=inode/directory
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel
X-KDE-StartupNotify=false

[Desktop Action root]
Exec=/usr/bin/pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true dolphin
Icon=system-file-manager-root
Name=Open as administrator
  • それでもDolphinのコンテキストメニューに表示されない場合は、[設定]-> [Dolphinの構成...]-> [サービス]に移動し、最近追加したオプションを有効にします。そこにあるはずです。そうでない場合は、Dolphinを閉じるか、ログアウトしてセッションにログインします。

それがすべてです、それが私を助けてくれたように、それがあなたたちすべてを助けてくれることを願っています;)


0

ターミナルをツールバーに追加し(キーボードショートカットはF4にバインドされています)、コマンドラインを使用して、必要に応じてsudoとして操作を実行しました。

そのようです

ええ、それほど便利ではないかもしれませんが、コマンドが実際にどのように機能するかを視覚的に表現しながら、コマンドラインの学習を開始することを強制します。

これはArchにありますが、機能はUbuntuでも同じです。お役に立てば幸いです。


0

ここでは、Dolphin 17.xの回避策を示します。

export XDG_CURRENT_DESKTOP=KDE; LD_PRELOAD=/home/roger/Downloads/dolphin/usr/lib64/libkdeinit5_dolphin.so /usr/bin/dolphin

ここlibkdeinit5_dolphin.soから得る

私がテストしたところ、Ubuntuバイオニックで正常に動作します。

ソース


0

ささいなことです!

kateとkwriteのソースコードを見てください。

diff --git a/kate/main.cpp b/kwrite/main.cpp

「main」関数の先頭にあるコードの最初の行に、次のものが見つかります。

/**
 * Check whether we are running as root
 **/
if (getuid() == 0) // uid = user id = 0 ==> means if you are user 0 (aka root)
{
    std::cout << "Executing Kate as root is not possible. To edit files as root use:" << std::endl;
    std::cout << "SUDO_EDITOR=kate sudoedit <file>" << std::endl;
    return 0;
}

イルカも例外ではありませんが、これはlibkdeinit5_dolphin.soで発生します。

したがって、rootとして実行するのは簡単です。ifuid = 0チェックをスキップするだけで済みます。

これを行う方法は、ケイト、kwrite、およびイルカをパーマパッチすることです。
したがって、最初に行うことは、バイナリコンテンツをテキストファイルにダンプすることです。

objdump -Crd /usr/bin/kate >> ~/kate.txt
objdump -Crd /usr/bin/kwrite >> ~/kwrite.txt

これで、でファイルをgedit ~/kate.txt確認できます。getuidを検索すると、次のようなものが見つかります。

   2a985:   31 c0                   xor    %eax,%eax
   2a987:   89 bc 24 dc 00 00 00    mov    %edi,0xdc(%rsp)
   2a98e:   e8 ed ce ff ff          callq  27880 <getuid@plt>
   2a993:   85 c0                   test   %eax,%eax
   2a995:   0f 84 e9 1e 00 00       je     2c884 <__cxa_finalize@plt+0x1f5c>

ここで、左側にメモリアドレスが表示され、コロン(:)の後にバイナリ命令コード(hex)が表示され、その右側にそのコードの逆アセンブリ(別名)が表示されます。 。

これで、getuidを呼び出して、それがゼロかどうかをテストし、ifステートメントにジャンプします。つまり、戻り値がゼロに等しいかどうか(je:等しい場合はジャンプします)。

今はifに飛び込みたくないので、そこでがらくたを削除します。ただし、そのがらくたを削除するだけでアドレスが6バイト変更され、プロセス内のプログラム内の相対ジャンプが破棄され、結果としてプログラムが破棄されます。したがって、代わりに、ジャンプステートメントの全長をNOP(N o Op erationの略)命令(別名、命令コード/ 16進数で0x90)に置き換えるだけです。

そこで、そこにあるすべてのジャンプバイトを0x90に置き換える必要があります。

0f 84 e9 1e 00 00

あなたは

90 90 90 90 90 90

これは、16進エディターで簡単に実行できます。
したがって、1つインストールします。

sudo apt-get install wxhexeditor

次に、16進エディタで0f 84 e9 1e 00 00を検索し、それを90 90 90 90 90 90に置き換えます。0f84 e9 1e 00 00の出現が1つしかなく、ある場合、これは簡単です。16進数のバイトを90 90 90 90 90 90に変更して保存します。終了しました。rootかどうかに関係なく、Kateまたはkwriteが開きます。

イルカと同じことを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)

したがって、libkdeinit5_dolphin.soでobjdumpを実行します。

objdump -Crd /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so >> ~/libkdeinit5_dolphin.txt

次に、objdumpを開きます。 gedit ~/libkdeinit5_dolphin.txt

getuidを検索すると、検索結果の1つが次のように表示されます。

   41f95:   31 c0                   xor    %eax,%eax
   41f97:   89 7c 24 5c             mov    %edi,0x5c(%rsp)
   41f9b:   e8 50 b6 ff ff          callq  3d5f0 <getuid@plt>
   41fa0:   85 c0                   test   %eax,%eax
   41fa2:   0f 84 58 1a 00 00       je     43a00 <kdemain@@Base+0x1a90>
   41fa8:   48 8d 84 24 a0 00 00    lea    0xa0(%rsp),%rax

これは素晴らしいですね、ケイトとクライトと同じようにもっとがらくたです。16進エディタで
開い/usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.soて、検索し0f 84 58 1a 00 00てに置き換え90 90 90 90 90 90ます。
保存を押して完了します。

イルカはルートとして実行されます。

注:万が一のために、変更したファイルのバックアップコピーを作成することをお勧めします。

また、kate、kwrite、およびdolphinのソースをダウンロードして、ソースコードからそのがらくたを削除し、コンパイルしてインストールすることもできます。しかし、愚かなcmakeシステムには、アイコンなどの愚かながらくたのためのいくつかのくだらないがらくたテンプレートが欠落しているため、おそらくリポジトリが提供するcmakeが古すぎるため、これは機能しません。残念ながら、もしそれがうまくいったら、単純過ぎるでしょう。

しかし、私が説明したように実行可能ファイルにパッチを当てるだけの方が高速なので、とにかく誰も気にしません。

わかりますが、簡単ではありませんが、取るに足らないことです。

PS:
ケイト、kwrite、またはイルカがaptを介して更新されると、変更は上書きされます。それらを再適用する必要があります。パッチプロセスの自動化は、有能な手と、プログラミング言語の喜びに任せます;)

これは純粋なbashで実行できますか?

また、同じがらくたのvlcにパッチを適用する場合は、sedを使用してパッチを適用できます。

sed -i 's/geteuid/getppid/' /usr/bin/vlc

そのsed-statementをスクリプトに入力するだけで、オフラインでインターネットにアクセスできない場合に必要に応じて再申請できます。

幸せなハッキング-ケイト、kwrite、イルカ-をルートとして-vlcで何かを見たり聞いたりしながら。

PS2:
KDE v19.04のDodoのように、くだらないルートチェックが行われました。
誰が言ったn個の進化は悪いことでした。
進歩するために-乾杯!


0

解決策ではなく提案です... Dolphinとファイルを変更することはかなり危険です。Double Commanderは優れた代替手段であり、リポジトリにあります。root権限なしでインストールされます。ルートを取得するには、ターミナルで「sudo doublecmd」と入力します。大きなファイルや数百万のファイルを操作する場合、多くの利点があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.