Làm thế nào để chạy cá heo như root?


14

Tôi hiện đang sử dụng dolphin 17.04.3và bất cứ khi nào tôi chạy nó dưới dạng sudo, nó sẽ báo lỗi sau Executing Dolphin as root is not possible.mà không giải thích lý do hoặc đưa ra giải pháp thay thế. Vậy làm thế nào tôi có thể chạy cá heo với quyền root để sao chép hoặc xóa các tập tin?


Bạn đang sử dụng phiên bản Ubuntu nào?
George Udosen

1
bạn đang sử dụng wayland? theo mặc định wayland không cho phép các chương trình GUI chạy bằng root.
ravery

không hoạt động. tùy chọn để tạo hoặc di chuyển các tập tin chỉ đơn giản là màu xám trong menu ngữ cảnh. Vui lòng kiểm tra phiên bản của bạn
Ankur S

Tôi đang sử dụng Ubuntu 17.10 và x11 với cài đặt kde
Ankur S

2
"Vậy làm thế nào tôi có thể chạy cá heo làm root để sao chép hoặc xóa các tập tin?" Vui lòng đánh giá lại câu hỏi này. Sử dụng dòng lệnh cho các nhiệm vụ quản trị viên. Nó đặc biệt dành cho các nhiệm vụ quản trị viên. Các công cụ đồ họa không nên được sử dụng cho các nhiệm vụ quản trị viên. Chạy các công cụ đồ họa khi quản trị viên không thấy các tác dụng phụ liên quan đến các quyền và đến cuối được coi là do các nhà phát triển chủ động chặn nó. Bạn có thực sự nghĩ rằng nên chống lại những người biết (hoặc được cho là biết;)) chính xác những gì một công cụ thao tác tập tin đồ họa có thể và làm được không?
Rinzwind

Câu trả lời:


11

Ngắn:

Cá heo 17.04

Cá heo 17.04 trở lên có séc:

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

Một cách giải quyết

Bạn có thể chỉnh sửa các nguồn và vô hiệu hóa kiểm tra. Sau đó, Cá heo sẽ hoạt động như trước.

Cá heo 18,08

Ít yêu cầu xem xét

Cá heo 18,08.0 đang sử dụng những thay đổi này và cá heo có thể được khởi chạy với lệnh pkexec với tư cách là siêu người dùng quản trị.

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

Xem thêm: KDE Forun - Làm cách nào để chạy Dolphin 18,08 với quyền root với Kubfox hoặc KDE neon? - https://forum.kde.org/viewtopic.php?f=224&t=153655

nhập mô tả hình ảnh ở đây

Lý lịch:

Trước đó - Diễn đàn KDE - Làm cách nào để chạy cá heo với quyền root?: Https://forum.kde.org/viewtopic.php?f=224&t=141836

Vì lý do bảo mật: Không cho phép thực hiện cá heo với quyền root trên Linux - https://cgit.kde.org/dolphin.git/commit/?id=0bdd8e0b0516555c6233fdc7901e9b417cf89

Không cho phép thực hiện cá heo với quyền root trên Linux Về cơ bản là bản sao của cam kết kate / 9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e được viết bởi Martin Grässlin

Không cho phép thực thi kate và kwrite với quyền root trên Linux: https://phovenator.kde.org/R40:9adcebd3c2e476c8a32e9b455cc99f46b0e12a7e

Thêm lời khuyên

KDE Reddit - Rễ cá heo trên Ứng dụng KDE 17.04: https://www.reddit.com/r/kde/comments/6785b1/dolphin_root_on_kde_app_1704/

Bỏ qua "Không thể thực hiện quyền cá nhân với quyền root" và lấy lại các đặc quyền gốc của cá heo KDE: https://www.reddit.com/r/kde/comments/6xs3mp/bypass_executing_dolphin_as_root_is_not_possible/

Tương lai

Hỗ trợ Polkit trong KIO: https://phovenator.kde.org/T6561

Khi nó sẵn sàng, Cá heo sẽ hiển thị truy vấn mật khẩu nếu cần. Bây giờ, với cá heo & KIO được vá:

nhập mô tả hình ảnh ở đây


1
Bạn có thể nói rõ hơn một chút về "Vì lý do bảo mật" không?
Jim McAdams

Bạn đã đọc photypeator.kde.org/ trên . Tương tự / hơn: Martin Grässlin - Chỉnh sửa tệp dưới dạng root: blog.martin-graesslin.com/blog/2017/02/editing-files-as-root
user26687

Vì vậy, câu trả lời đơn giản là "bạn không thể chạy Dolphin với quyền root, trừ khi bạn cài đặt phiên bản vá"?

@ user47206: Tại sao không tự vá nó? ;) Xem câu trả lời của tôi dưới đây!
WitchCraft

10

Không phải là một câu trả lời, chỉ là một cách giải quyết cho mục đích được đề cập bởi OP ( copying or deleting files).

Ý tưởng là để

  1. cài đặt trình quản lý tệp khác không có giới hạn đó và điều đó không mang lại nhiều phụ thuộc

  2. tạo menu ngữ cảnh "Mở dưới dạng gốc" trong Dolphin cho trình quản lý tệp khác này.

Trình quản lý tệp chính của các máy tính để bàn khác có thể được sử dụng (Nautilus, Nemo, Caja, Thunar) nhưng chúng mang lại một số phụ thuộc. Ngay cả PCManFM và PCManFM-Qt cũng làm điều đó. Nếu bạn cần một trong những thứ đó cho một số mục đích khác, thêm vào đó có thể là một giải pháp tốt.

Tôi đã thấy rằng Krusader (mà tôi nghĩ trước đây được cài đặt mặc định trong một số hệ thống KDE) có thể dễ dàng cài đặt, không mang lại sự phụ thuộc trong Kubfox 18.04 và có thể được sử dụng làm root.

sudo apt install krusader

Theo Công cụ của nó, nó có tùy chọn "Root".

nhập mô tả hình ảnh ở đây

trong đó yêu cầu mật khẩu trong một gui.

Để thêm một menu ngữ cảnh trong cá heo, tạo thư mục ~/.local/share/kservices5/ServiceMenusvà sau đó làm

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

và thêm

[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

Vì một số lý do kdesu krusaderkhông hoạt động và tôi đã sử dụng giải pháp từ đây .. Cái gì cũng hoạt động konsole -e sudo krusader, nhưng nó hiển thị thiết bị đầu cuối thay vì gui cho dấu nhắc mật khẩu.

Sau đó, bạn sẽ thấy trong Cá heo:

nhập mô tả hình ảnh ở đây

mang một hộp thoại

nhập mô tả hình ảnh ở đây

đó là một trong những hoạt động ..


4

Tôi đã thực hiện phiên bản của riêng tôi dựa trên các câu trả lời ở trên. Vì vậy, để thêm một menu ngữ cảnh để mở Dolphin với quyền root, hãy làm theo các bước sau:

  • Tạo một tệp được gọi là ví dụ DolphinAsRoot.desktoptrên thư mục~/.local/share/kservices5/ServiceMenus/
  • Với một trình soạn thảo văn bản, hãy đặt nội dung sau vào đó:
[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
  • Nếu nó vẫn không xuất hiện trên menu ngữ cảnh trong Cá heo, hãy chuyển đến "Cài đặt -> Định cấu hình Cá heo ...-> Dịch vụ" và kích hoạt tùy chọn bạn đã thêm gần đây. Nó nên ở đó Nếu không, hãy đóng Cá heo hoặc thậm chí đăng xuất và đăng nhập vào phiên của bạn.

Đó là tất cả, tôi hy vọng nó sẽ giúp tất cả các bạn như nó đã giúp tôi;)


0

Tất cả những gì tôi đã làm là thêm Terminal vào thanh công cụ (mặc dù lối tắt bàn phím bị ràng buộc với F4) và sử dụng dòng lệnh để thực hiện các thao tác như sudo theo yêu cầu.

Thích như vậy

Vâng, nó có thể không thuận tiện nhưng nó buộc bạn phải bắt đầu học dòng lệnh trong khi đưa ra biểu diễn trực quan về cách thức hoạt động của lệnh.

Đây là trên Arch nhưng chức năng nên giống nhau trên Ubuntu. Hy vọng rằng đã giúp.


0

đây là một cách giải quyết cho cá heo 17.x:

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

lấy libkdeinit5_dolphin.sotừ đây

Được thử nghiệm bởi tôi, nó hoạt động tốt trong Ubuntu bionic.

nguồn


0

Thật tầm thường!

Chỉ cần nhìn vào mã nguồn của kate và kwrite:

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

Trong các dòng mã đầu tiên trực tiếp khi bắt đầu chức năng "chính", bạn sẽ tìm thấy:

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

Cá heo không khác, ngoại trừ điều này xảy ra trong libkdeinit5_dolphin.so.

Vì vậy, chạy như root là tầm thường, tất cả những gì chúng ta cần làm là bỏ qua kiểm tra if uid = 0.

Cách chúng tôi làm điều này là bằng cách chắp vá kate, kwrite và cá heo.
Vì vậy, điều đầu tiên chúng ta làm là bỏ nội dung nhị phân vào tệp văn bản:

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

Bây giờ bạn có thể xem tệp với gedit ~/kate.txtvà nếu bạn tìm kiếm getuid, bạn sẽ tìm thấy một cái gì đó như:

   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>

Bây giờ, ở phía bên trái, bạn tìm thấy địa chỉ bộ nhớ, sau dấu hai chấm (:) bạn sẽ thấy mã lệnh nhị phân (hex) và ở bên phải, bạn thấy sự phân tách của mã đó (còn gọi là ý nghĩa của nó) .

Bây giờ, bạn thấy, ở đó nó gọi getuid, kiểm tra nếu đó bằng 0 và nhảy vào câu lệnh if, nghĩa là nếu giá trị trả về bằng 0 (je: jump if bằng).

Bây giờ chúng tôi không muốn nhảy vào nếu, vì vậy chúng tôi chỉ cần loại bỏ những thứ nhảm nhí đó. Nhưng chỉ cần loại bỏ crap đó sẽ thay đổi địa chỉ 6 byte, bỏ qua bất kỳ bước nhảy tương đối nào trong chương trình trong quá trình và kết quả là chương trình. Vì vậy, thay vào đó, bạn chỉ cần thay thế toàn bộ chiều dài của câu lệnh nhảy bằng các hướng dẫn NOP (viết tắt của N o Op eration), còn gọi là 0x90 trong mã lệnh / hex.

Vì vậy, bạn cần thay thế mọi byte nhảy ở đó bằng 0x90 để trước đây bạn đã có

0f 84 e9 1e 00 00

bạn sẽ có

90 90 90 90 90 90

Điều này có thể được thực hiện đơn giản với một trình soạn thảo hex.
Vì vậy, chúng tôi cài đặt một:

sudo apt-get install wxhexeditor

Bây giờ trong trình chỉnh sửa hex, bạn tìm kiếm 0f 84 e9 1e 00 00 và thay thế bằng 90 90 90 90 90 90. Nếu chỉ có một lần xuất hiện là 0f 84 e9 1e 00 00, và điều này thật đơn giản. Chỉ cần thay đổi các byte trong hex thành 90 90 90 90 90 90 và lưu lại. Đã kết thúc. Kate hoặc kwrite bây giờ sẽ mở, cho dù bạn đã root hay chưa.

nếu bạn làm tương tự với cá heo, bạn sẽ nhận objdump -Crd /usr/bin/dolhinra việc tháo gỡ rất ngắn.

nếu bạn chạy ldd /usr/bin/dolphin, bạn sẽ thấy cá heo tải thư viện chia sẻ libkdeinit5_dolphin.so

linux-vdso.so.1 (0x00007ffc2fdf0000) libkdeinit5_dolphin.so => ​​/usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.so (0x00007fb54e76c000)

Vì vậy, bạn thực hiện objdump trên libkdeinit5_dolphin.so:

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

Bây giờ hãy mở objdump: gedit ~/libkdeinit5_dolphin.txt

Tìm kiếm getuid và bạn sẽ thấy rằng một trong những kết quả tìm kiếm là:

   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

Điều này thật tuyệt, bạn thấy đấy, nhiều thứ tào lao giống như trong kate và kwrite.
Bây giờ hãy mở /usr/lib/x86_64-linux-gnu/libkdeinit5_dolphin.sotrong trình soạn thảo hex của bạn, tìm kiếm 0f 84 58 1a 00 00và thay thế nó bằng 90 90 90 90 90 90.
Nhấn lưu, và thực hiện.

Cá heo bây giờ chạy như root.

Lưu ý: Ý tưởng tốt để tạo một bản sao lưu của các tệp bạn sửa đổi, chỉ trong trường hợp bạn tìm thấy.

Ngoài ra, bạn chỉ có thể tải xuống nguồn của kate, kwrite và cá heo, loại bỏ crap đó khỏi mã nguồn, biên dịch và cài đặt. Nhưng vì hệ thống cmake ngu ngốc đang thiếu một số mẫu nhảm nhí cho một số thứ ngu ngốc như biểu tượng, có lẽ vì cmake được cung cấp repo quá cũ, nên điều này không hoạt động. Quá tệ, sẽ quá đơn giản nếu nó chỉ hoạt động, phải không.

Nhưng chỉ cần vá các tệp thực thi như tôi mô tả là nhanh hơn, vì vậy ai quan tâm chứ.

Bạn thấy đấy, nó không đơn giản, nhưng nó tầm thường.

PS:
Bây giờ, bất cứ khi nào kate, kwrite hoặc cá heo được cập nhật thông qua apt, những thay đổi của bạn sẽ được ghi đè. Bạn sẽ cần phải áp dụng lại chúng. Tôi sẽ tự động hóa quá trình vá lỗi trong tay nhiều hơn khả năng của mình và ngôn ngữ lập trình của bạn rất vui;)

Điều này có thể được thực hiện trong bash tinh khiết?

Ngoài ra, nếu bạn muốn vá vlc cho cùng một crap, bạn có thể làm điều đó với sed:

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

Chỉ cần đặt câu lệnh sed đó vào một tập lệnh, để bạn có thể áp dụng lại, nếu bạn cần nếu bạn ngoại tuyến và không có quyền truy cập internet.

Hack vui vẻ - với kate, kwrite và cá heo - là root - trong khi xem / nghe một cái gì đó trên vlc.

PS2:
Các kiểm tra gốc nhảm nhí đã đi theo cách của Dodo trong KDE v19.04.
Ai nói n tiến hóa là một điều xấu.
Để tiến bộ - Chúc mừng!


0

Không phải là một giải pháp, mà là một gợi ý .... Thay đổi cá heo và các tệp khá rủi ro. Double Commander là một sự thay thế tuyệt vời, và được tìm thấy trong kho lưu trữ. Nó sẽ cài đặt mà không cần chứng minh gốc. Để lấy root, chỉ cần nhập 'sudo doublecmd' trong terminal. Nó có nhiều lợi thế khi làm việc với các tệp lớn và hàng triệu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.