วิธีการเรียกใช้ปลาโลมาเป็นหลัก


14

ฉันใช้อยู่ในปัจจุบันdolphin 17.04.3และเมื่อใดก็ตามที่ฉันเรียกใช้เป็น sudo มันจะให้ข้อผิดพลาดดังต่อไปนี้ Executing Dolphin as root is not possible.โดยไม่อธิบายสาเหตุหรือให้ทางเลือกอื่น ดังนั้นฉันจะเรียกใช้ปลาโลมาเป็นหลักในการคัดลอกหรือลบไฟล์ได้อย่างไร


คุณใช้ Ubuntu รุ่นใด
George Udosen

1
คุณใช้ wayland อยู่หรือเปล่า? โดยค่าเริ่มต้น wayland ไม่อนุญาตให้โปรแกรม GUI รันเป็นรูท
ravery

ไม่ทำงาน ตัวเลือกในการสร้างหรือย้ายไฟล์เป็นสีเทาในเมนูบริบท โปรดตรวจสอบเวอร์ชั่นของคุณ
Ankur S

ฉันใช้อูบุนตู 17.10 และ x11 เมื่อติดตั้ง kde
Ankur S

2
"ดังนั้นฉันจะเรียกใช้ปลาโลมาเป็นหลักในการคัดลอกหรือลบไฟล์ได้อย่างไร" โปรดประเมินคำถามนี้อีกครั้ง ใช้บรรทัดคำสั่งสำหรับงานผู้ดูแลระบบ มันมีเฉพาะสำหรับงานผู้ดูแลระบบ เครื่องมือกราฟิกไม่ควรใช้สำหรับงานผู้ดูแลระบบ การเรียกใช้เครื่องมือกราฟิกในฐานะผู้ดูแลระบบมีผลข้างเคียงที่มองไม่เห็นเกี่ยวกับการอนุญาตและในช่วงท้ายจะถือว่าผู้พัฒนาบล็อกอย่างแข็งขัน คุณคิดว่าเป็นความคิดที่ดีหรือไม่ที่จะต่อสู้กับคนที่รู้ (หรือควรรู้;)) สิ่งที่เครื่องมือจัดการไฟล์กราฟิกสามารถทำได้หรือไม่?
Rinzwind

คำตอบ:


11

สั้น:

ปลาโลมา 17.04

ปลาโลมา 17.04 หรือใหม่กว่ามีเช็ค:

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

วิธีแก้ปัญหา

คุณสามารถแก้ไขแหล่งที่มาและปิดการใช้งานการตรวจสอบ จากนั้นปลาโลมาจะทำงานเหมือนเดิม

ปลาโลมา 18.08

ขอให้ตรวจสอบน้อย

  • อนุญาตให้เรียกใช้ Dolphin อีกครั้งในฐานะผู้ใช้รูท (แต่ยังไม่ได้ใช้ sudo): https://phabricator.kde.org/D12795

  • แสดงคำเตือนเมื่อทำงานในฐานะผู้ใช้รูท: https://phabricator.kde.org/D12732

Dolphin 18.08.0 ใช้การเปลี่ยนแปลงเหล่านี้และสามารถเปิดใช้งาน Dolphin ด้วยคำสั่ง pkexec ในฐานะผู้ใช้ขั้นสูงสำหรับผู้ดูแลระบบ

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

เพิ่มเติม: KDE Foruns - วิธีรันดอลฟิน 18.08 เป็นรูทด้วย Kubuntu หรือ KDE นีออน - https://forum.kde.org/viewtopic.php?f=224&t=153655

ป้อนคำอธิบายรูปภาพที่นี่

พื้นหลัง:

ก่อนหน้านี้ - ฟอรัม KDE - วิธีเรียกใช้ Dolphin เป็น root: https://forum.kde.org/viewtopic.php?f=224&t=141836

เพื่อเหตุผลด้านความปลอดภัย: ไม่อนุญาตให้ดำเนินการ Dolphin เป็นรูทบน Linux - https://cgit.kde.org/dolphin.git/commit/?id=0bdd8e0b0516555c6233fdc7901e9b417cf89

ไม่อนุญาตให้เรียกใช้งาน Dolphin เป็นรูทบน Linux โดยทั่วไปสำเนาของการกระทำ kate / 9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e ซึ่งเขียนโดย Martin Grässlin

ไม่อนุญาตให้เรียกใช้งาน 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/

บายพาส "การดำเนินการดอลฟินด้วยรูทเป็นไปไม่ได้" และรับสิทธิพิเศษรูท KDE Dolphin อีกครั้ง: 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 ที่ได้รับการแพทช์แล้ว:

ป้อนคำอธิบายรูปภาพที่นี่


1
คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับ "เพื่อเหตุผลด้านความปลอดภัย" ได้หรือไม่?
Jim McAdams

คุณอ่านphabricator.kde.org/หรือไม่ Same / more: Martin Grässlin - การแก้ไขไฟล์ในฐานะ root: blog.martin-graesslin.com/blog/2017/02/editing-files-as-root
user26687

ดังนั้นคำตอบง่ายๆคือ "คุณไม่สามารถเรียกใช้ Dolphin ในฐานะรูทเว้นแต่คุณจะติดตั้งเวอร์ชันที่ได้รับการติดตั้งแล้ว" หรือไม่?

@ user47206: ทำไมไม่แก้ไขด้วยตัวเองล่ะ ;) ดูคำตอบของฉันด้านล่าง!
คาถา

10

ไม่ใช่คำตอบเพียงแค่วิธีแก้ไขตามวัตถุประสงค์ที่กล่าวไว้โดย OP ( copying or deleting files)

ความคิดคือการ

  1. ติดตั้งรางหญ้าไฟล์อื่นที่ไม่มีข้อ จำกัด และไม่ได้มีการพึ่งพามาก

  2. สร้างเมนูบริบท "เปิดเป็นรูท" ใน Dolphin สำหรับเครื่องมือจัดการไฟล์อื่นนี้

ตัวจัดการไฟล์หลักของเดสก์ท็อปอื่นสามารถใช้งานได้ (Nautilus, Nemo, Caja, Thunar) แต่พวกมันมีการอ้างอิงบางอย่าง แม้แต่ PCManFM และ PCManFM-Qt ก็ทำเช่นนั้น หากคุณต้องการหนึ่งในนั้นเพื่อจุดประสงค์อื่นโดยเพิ่มว่าสิ่งนั้นอาจเป็นทางออกที่ดี

ฉันพบว่าKrusader (ซึ่งฉันคิดว่าในอดีตเคยติดตั้งโดยค่าเริ่มต้นในระบบ KDE บางระบบ) สามารถติดตั้งได้อย่างง่ายดายไม่ต้องพึ่งพา Kubuntu 18.04 และสามารถใช้เป็นรูทได้

sudo apt install krusader

ภายใต้เครื่องมือมีตัวเลือก "รูท"

ป้อนคำอธิบายรูปภาพที่นี่

ซึ่งขอรหัสผ่านในกุย

หากต้องการเพิ่มเมนูบริบทในโลมาสร้างโฟลเดอร์~/.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 สำหรับการขอรหัสผ่าน

จากนั้นคุณจะเห็นในปลาโลมา:

ป้อนคำอธิบายรูปภาพที่นี่

นำการสนทนา

ป้อนคำอธิบายรูปภาพที่นี่

อันไหนที่ใช้ได้ ..


5

ฉันสร้างเวอร์ชันของฉันเองตามคำตอบข้างต้น ดังนั้นหากต้องการเพิ่มเมนูบริบทเพื่อเปิด 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 ...-> Services" และเปิดใช้งานตัวเลือกที่คุณเพิ่งเพิ่ม มันควรจะมี ถ้าไม่ปิดโลมาหรือออกจากระบบและในเซสชั่นของคุณ

นั่นคือทั้งหมดที่ฉันหวังว่าจะช่วยให้คุณทุกคนชอบมันช่วยฉัน;)


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 bionic

แหล่ง


0

มันเป็นเรื่องเล็กน้อย!

เพียงแค่ดูซอร์สโค้ดของ kate และ kwrite:

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

ในบรรทัดแรกของรหัสโดยตรงที่จุดเริ่มต้นของฟังก์ชั่น "หลัก" คุณจะพบ:

/**
 * 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

ดังนั้นการทำงานในฐานะรูทนั้นเป็นเรื่องเล็กน้อยสิ่งที่เราต้องทำคือข้ามการตรวจสอบ if uid = 0

วิธีที่เราทำเช่นนี้คือโดย kate perma-patching, kwrite และ dolphin
ดังนั้นสิ่งแรกที่เราทำคือการทิ้งเนื้อหาไบนารีไปยังไฟล์ข้อความ:

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>

ตอนนี้ทางด้านซ้ายคุณจะพบที่อยู่หน่วยความจำหลังเครื่องหมายจุดคู่ (:) คุณจะเห็นรหัสคำสั่งเลขฐานสอง (ฐานสิบหก) และทางด้านขวาของที่คุณเห็นการถอดชิ้นส่วนของรหัสนั้น (aka ความหมาย) .

ทีนี้, คุณเห็น, มันเรียกว่า getuid, ทดสอบว่ามันเป็นศูนย์และกระโดดเข้าไปในคำสั่ง if, นั่นก็คือถ้าบอกว่าค่าส่งคืนเท่ากับศูนย์ (je: กระโดดถ้าเท่ากัน)

ตอนนี้เราไม่ต้องการกระโดดเข้าไปใน if ดังนั้นเราแค่เอาอึนั้นออกไป แต่เพียงแค่ลบอึนั้นจะเปลี่ยนที่อยู่ 6 bytes, trashing ใด ๆ ที่เกี่ยวข้องกระโดดในโปรแกรมในกระบวนการและเป็นผลให้โปรแกรม ดังนั้นคุณเพียงแค่แทนที่ความยาวทั้งหมดของคำสั่ง jump ด้วยคำสั่ง NOP (ย่อมาจากคำสั่งN o Op ation) หรือที่ 0x90 ในรหัสคำสั่ง / hex

ดังนั้นคุณต้องแทนที่การข้ามทุกไบต์ด้วย 0x90 เพื่อที่คุณเคยมี

0f 84 e9 1e 00 00

คุณจะต้อง

90 90 90 90 90 90

สิ่งนี้สามารถทำได้ง่ายๆด้วย hex-editor
ดังนั้นเราจึงติดตั้งหนึ่ง:

sudo apt-get install wxhexeditor

ตอนนี้ในโปรแกรมแก้ไข hex คุณค้นหา 0f 84 e9 1e 00 00 และแทนที่ด้วย 90 90 90 90 90 90 หากมีเหตุการณ์เดียวที่ 0f 84 e9 1e 00 00 และมีสิ่งนี้ง่ายมาก เพียงแค่เปลี่ยนไบต์เป็น hex 90 90 90 90 90 90 และบันทึก เสร็จ 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)

ดังนั้นคุณทำ objdump บน libkdeinit5_dolphin.so:

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

ตอนนี้เปิด objdump: gedit ~/libkdeinit5_dolphin.txt

ค้นหา getuid และคุณจะเห็นว่าหนึ่งในผลการค้นหาคือ:

   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

นี่เป็นสิ่งที่ยอดเยี่ยมมากคุณเห็นอึมากขึ้นเช่นเดียวกับใน kate และ kwrite
ตอนนี้เปิด/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 ที่จัดหาโดย repo นั้นเก่าเกินไปมันไม่ทำงาน น่าเสียดายที่มันจะง่ายเกินไปถ้ามันใช้งานได้

แต่เพียงปะแก้ไฟล์เอ็กซีคิวต์ตามที่ฉันอธิบายไว้เร็วขึ้นดังนั้นใครจะสนใจล่ะ

คุณจะเห็นว่ามันไม่ตรงไปตรงมา แต่มันไม่สำคัญ

PS:
ตอนนี้ทุกเวลา kate, kwrite หรือปลาโลมามีการปรับปรุงผ่าน apt การเปลี่ยนแปลงของคุณจะถูกเขียนทับ คุณจะต้องสมัครใหม่ ฉันจะปล่อยให้กระบวนการแพทช์เป็นไปโดยอัตโนมัติในมือที่มีความสามารถมากกว่าของคุณและภาษาโปรแกรมของคุณด้วยความยินดี;)

สิ่งนี้สามารถทำได้ในทุบตีบริสุทธิ์?

นอกจากนี้หากคุณต้องการแพทช์ vlc สำหรับอึเดียวกันคุณสามารถทำได้ด้วย sed:

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

เพียงแค่ใส่คำสั่ง sed ที่เป็นสคริปต์เพื่อให้คุณสามารถนำไปใช้อีกครั้งถ้าคุณต้องการถ้าคุณออฟไลน์และไม่มีอินเทอร์เน็ต

แฮ็คมีความสุข - กับเคท, เขียนและปลาโลมา - เป็นราก - ในขณะที่ดู / ฟังบางสิ่งบางอย่างใน vlc

PS2:
การตรวจสอบเส็งเคร็งไปตามทางของ Dodo ใน KDE v19.04
ใครบอกว่าnวิวัฒนาการเป็นสิ่งที่ไม่ดี
เพื่อความก้าวหน้า - ไชโย!


0

ไม่ใช่วิธีแก้ปัญหา แต่เป็นคำแนะนำ .... การเปลี่ยนโลมาและไฟล์ต่าง ๆ ค่อนข้างมีความเสี่ยง Double Commander เป็นทางเลือกที่ยอดเยี่ยมและพบได้ใน respository มันจะติดตั้งโดยไม่มีรากติดตั้ง หากต้องการรับรูทเพียงป้อน 'sudo doublecmd' ในเทอร์มินัล มันมีข้อดีหลายอย่างเมื่อทำงานกับไฟล์ขนาดใหญ่และหลายล้านไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.