Câu trả lời:
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ó.
sudo -E
tương đương với gksudo
?
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):
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. 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. 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>
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. 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>
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. 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.
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.
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). "