sudo vs gksudo. Sự khác biệt?


34

Sự khác biệt giữa sudogksudo?


1
Câu hỏi hay. Tôi đang học Linux ngay bây giờ (Bạn có thể thấy rằng tôi chưa tìm thấy bố cục bàn phím của mình) Haha!
r0ca

Câu trả lời:


26

sudo hỏi mật khẩu trên dòng lệnh và gksudo bật lên một hộp thoại cho nó.


vâng, đó là sự khác biệt
knitti

6
gksu (do) cũng có cấu hình riêng của nó về các biến môi trường truyền qua cho đứa trẻ, tách biệt với riêng của su (do). Ví dụ: nếu cấu hình sudoers của bạn chỉ định! Keep_env, việc thiếu $ DISPLAY có thể ngăn các ứng dụng đồ họa chạy, nhưng gksudo sẽ hoạt động. Bạn có thể tìm thấy một số chi tiết tại git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/ cảm hoặc là live.gnome.org/gksu .
ephemient

@ephemient Vì vậy, ngoài lời nhắc đồ họa, là sudo -E tương đương với gksudo?
isomorphismes

3
câu trả lời dưới đây có vẻ vượt trội siêu người dùng.com / a / 726249/12542
johny why

4
Tôi muốn nhấn mạnh rằng đây là không phải sự khác biệt quan trọng ở tất cả, và câu trả lời này khá sai lệch với người mới. Sự khác biệt chính được giải thích ở đây: Askubfox.com/a/11766/81034 và câu trả lời dưới đây (mà @johnywhy liên kết đến) đi xa hơn một bước để thêm một số sắc thái cho điều đó. Xin vui lòng đọc câu hỏi Askubfox thay vì dựa vào câu trả lời sai lệch này.
sundar

30

gksudo là một lối vào dựa trên GTK của sudo (BTW, kdesudo là một lối vào dựa trên Qt), tuy nhiên, nó (theo mặc định) xử lý nhiều biến môi trường hơn ( HOME, XAUTHORITY, v.v.) hơn sudo do đó làm cho các lệnh chạy như root an toàn hơn.


Theo như tôi có thể thấy chỉ có câu trả lời @Logics là đủ chính xác (@Ignacio Vazquez-Abrams chưa hoàn thành). Dưới đây là cách làm rõ để tránh làm rõ câu trả lời / nhận xét @Davros @knitti (Vui lòng xóa / chỉnh sửa chúng khi không cần thiết):

  1. Mặc dù cả hai lệnh thực sự đại diện sudo, UI được sử dụng KHÔNG phải là điểm khác biệt duy nhất của hai lệnh.
  2. Chạy chương trình GUI KHÔNG phải là tình huống duy nhất khi bạn nên sử dụng gk / kdesudo, thay vào đó bạn nên sử dụng gk / kdesudo bất cứ khi nào bạn không thể xác định liệu lệnh sẽ tạo / ghi tệp vào thư mục chính của bạn (mà HOME biến môi trường trỏ đến trong sudo lệnh trong một số hệ thống và tình huống). Không phải tất cả các ứng dụng GUI ghi vào thư mục chính của bạn và không phải tất cả các ứng dụng CLI đều không , vì vậy loại lệnh không phải là điểm chính.
  3. Bạn vẫn có thể sử dụng sudo lệnh để khởi chạy ứng dụng GUI dưới dạng root (để xem đầu ra bảng điều khiển của ứng dụng làm ví dụ), tuy nhiên bạn cần xử lý HOME (và những người khác như XAUTHORITY, DISPLAY, các công cụ liên quan đến phương thức nhập liệu, v.v.) chính xác để các ứng dụng được khởi chạy sẽ không bị lỗi, mất chức năng hoặc làm những thứ thực sự xấu. Sau đây là khuyến nghị hiện tại của tôi để sử dụng sudo
    • sudo -H <rest of the command>
      • (từ sudo phần 8 trang hướng dẫn) -H ( HOME ) tùy chọn yêu cầu chính sách bảo mật đặt HOME biến môi trường cho thư mục chính của người dùng đích (theo mặc định) theo quy định của cơ sở dữ liệu mật khẩu. Tùy thuộc vào chính sách, đây có thể là hành vi mặc định.
      • Điều này ít nhất nên ngăn chặn các tập tin được tạo ra trong sudo thư mục nhà của người gọi
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Điều này sẽ cho phép & lt; chương trình GUI & gt; được thực thi trong một thiết bị đầu cuối TTY và được hiển thị trong môi trường máy tính để bàn của bạn
  4. Hành vi của sudo chỉ huy không giống nhau trên tất cả các hệ thống và có thể được cấu hình thông qua visudo lệnh, xin vui lòng kiểm tra sudoers(5) manpage để biết thêm.

2
có vẻ như một lời giải thích tốt hơn nhiều so với giải thích nhận được tất cả các phiếu bầu. kỹ lưỡng hơn, đúng đắn hơn. ngay cả OP trả lời "có phải vậy không?" câu trả lời đã nhận được tất cả các phiếu bầu.
johny why

2

Sử dụng sudo thường xuyên để chạy các chương trình đồ họa trong một trường hợp hiếm hoi làm rối tung quyền trên một số tệp. Để an toàn, gksudo (hoặc kdesudo là phù hợp) nên được sử dụng để chạy các chương trình với GUI. Tôi nghĩ rằng đây thực sự là một lỗi, mặc dù tôi đã nghe giải thích rằng gksudo hiểu các biến máy chủ X và sudo không thể dẫn đến các vấn đề. Chỉ là một mẹo; nếu bạn đang chạy các chương trình đồ họa dưới dạng root, thay vì mở một thiết bị đầu cuối cho mỗi chương trình bạn muốn chạy, hãy gõ ALT-F2 (alt và phím chức năng 2 cùng một lúc), sau đó nhập vào hộp thoại bật lên "gksudo chương trình "không có dấu ngoặc kép và chương trình được thay thế bởi ứng dụng bạn muốn chạy.


2

sudo chạy như người dùng hiện tại với các đặc quyền nâng cao. Điều này có khả năng thay đổi quyền truy cập tệp của một số tệp cấu hình người dùng (liên quan đến môi trường đồ họa của bạn) khi chạy các ứng dụng đồ họa. Bạn có thể tìm thấy lỗi xảy ra khi chạy lại các ứng dụng này mà không có sudo.

gksudo (kdesudo theo KDE) chạy các ứng dụng với tư cách là người dùng root, do đó, mọi quyền truy cập tệp được chạm vào đều nằm trên tệp gốc chứ không phải tệp người dùng. chạy lại các ứng dụng này mà không có gksudo / kdesudo sẽ luôn có hành vi mong đợi.


0

Câu trả lời hiện tại không chính xác. Theo Ubuntu RootSudo wiki :

"Bạn không bao giờ nên sử dụng sudo bình thường để khởi động các ứng dụng đồ họa như root. Bạn nên sử dụng gksudo (kdesudo trên Kubfox) để chạy các chương trình như vậy. Gksudo đặt HOME = ~ root và sao chép .Xmasterity vào thư mục tmp. thư mục trở thành sở hữu của root. (AFAICT, đây là tất cả những gì đặc biệt về môi trường của quá trình bắt đầu với gksudo so với sudo). "


2
Có bốn câu trả lời khác; cái nào không đúng Không phải câu trả lời của bạn về cơ bản giống như câu trả lời của Davros sao?
fixer1234

Tôi đã đề cập đến câu trả lời được đánh dấu là chính xác. Vâng, Davros đang nói điều tương tự, nhưng tôi đã thêm điều này bởi vì nó không chứa liên kết đến một nguồn.
eugene1832

1
Một giải pháp tốt hơn sẽ là đề xuất một chỉnh sửa cho câu trả lời đó. Cải thiện một câu trả lời có khả năng được chấp nhận (+2 rep), trong khi về cơ bản, việc sao chép một câu trả lời có khả năng thu hút các lượt tải xuống.
fixer1234
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.