Sự khác biệt giữa sudo và gksu có giống như sự khác biệt giữa sudo -i và sudo -s không?


26

Là sự khác biệt giữa sudo cmdgksu cmd, giống như sự khác biệt
giữa bắt đầu một vỏ với sudo -isudo -s?

... Hoặc đặt một cách khác,
sudo cmd giống sudo -i cmd
gksu cmdgiống như sudo -s cmd?

EDIT: Dựa trên những gì tôi đọc trên Trang Tài liệu Ubuntu có ghi:

You should never use normal sudo to start graphical applications as root.  
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets  
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files  
in your home directory becoming owned by root.  
(AFAICT, this is all that's special about the environment of the started   
 process with gksudo vs. sudo).

Các "AFAICT" doen't thực sự cho tôi hoàn toàn tin tưởng rằng không có gì nhiều hơn thế nữa.


(..a muộn CẬP NHẬT : Tôi đã kiểm tra kỷ niệm của anh ấy hôm nay (2 tháng sau) về:
"Điều này ngăn các tệp trong thư mục nhà của bạn trở thành sở hữu của root."
Tất cả các tệp tôi tạo qua sudo / gksu đều thuộc sở hữu của " root " và nhóm đã " root ".)


Tôi đã đọc các phần của info sudovà nhận thấy -i-s dường như đang làm điều tương tự như vấn đề môi trường AFAICT ...
nhưng tôi gặp quá tải .. vì vậy tôi đã hỏi câu hỏi của mình ở đây.

PS .. Câu hỏi của tôi không phải là về sudo vs gksu
.. Nó là về: gksu giống như sudo -s
.. và nếu không, chúng khác nhau như thế nào?

Câu trả lời:


16

gksuvề cơ bản là một lối vào đồ họa cho sudo cho phép chạy lệnh đồ họa mà không cần phải chạy trình giả lập thiết bị đầu cuối X và sử dụng su trực tiếp. Đó thực sự chỉ là một làn da GTK + cho các lệnh superuser.

Vì vậy, nếu bạn muốn chạy một chương trình dựa trên GUI với quyền root, bạn sẽ gọi nó bằng gksu cmd, chứ không phải sudo cmd, được sử dụng để gọi các chương trình console dưới dạng root.


1
Tôi không biết bạn có thể có ý gì bởi một graphicalfrontend ... một ứng dụng GTK chạy khá vui vẻ bất kể nó được bắt đầu thông qua sudo hay gksu ... nhưng nó chạy progam trong một môi trường khác ... (Tôi sẽ thêm một số câu hỏi nữa vào câu hỏi của tôi để chỉ ra lý do tại sao tôi đã đặt câu hỏi ...
Peter.O

2
Cuối cùng tôi đã hiểu những gì bạn có ý nghĩa bởi một graphical frontend. Tôi luôn sử dụng thiết bị đầu cuối để chạy sudo / gksu ... nhưng với tinh thần vũ phu đang thử mọi thứ tôi có thể nghĩ ra, tôi đã thử chạy sudogksuthông qua Alt + F2 ... Bingo! .. sudobiến mất vào khoảng trống, nhưng gksugraphical forntend
tình cờ

PS .. Tôi vừa thử gksu trong một thiết bị đầu cuối mới .. Hộp thoại mật khẩu cũng xuất hiện ở đó ... Tôi phải thấy nó trước đây nhưng được liên kết với mật khẩu (chỉ), và thực tế đó không phải là hộp thoại GUI từ một lệnh Terminal ... ("Tôi hiểu rồi". Người mù nói :) ... Cảm ơn ...
Peter.O

. Theo dõi thêm, được thúc đẩy bởi câu trả lời của bạn, có vẻ như điều đó đã gksuthay đổi thư mục XAUTHORITY, và sudokhông ... Tôi không chắc đó là gì, nhưng nó có vẻ quan trọng! ... Điều này đã giải quyết được vấn đề nan giải của tôi ... (chi tiết trong câu trả lời của tôi dưới đây)
Peter.O

10

sudo -iĐặt lại môi trường đăng nhập cho người dùng đích ( root , trong trường hợp này). Chủ yếu, đó là HOMEbiến môi trường được thay đổi, có nghĩa là người dùng đích đã ~/.bashrcđược tải.

gksudo đó, giống như sudo -itrong đó là chuyển $HOMEsang người dùng root .


Cảm ơn KC .. Nó bắt đầu có ý nghĩa với tôi (chậm, chậm) ... nhưng dường như rõ ràng rằng gksu, bằng cách tạo một bản sao XAUTHORITY, và làm việc từ (?), Đưa gksu vào một thể loại khá riêng biệt bất kỳ sudobiến thể nào mà tôi đã đề cập đến ... và nhận ra đây là Aha! Khoảnh khắc cho tôi ... Kết quả cuối cùng là: Sử dụng gksu cho các ứng dụng GUI! .. nhưng tôi chỉ còn một lần giải quyết nữa ... gksu chỉ áp dụng cho các ứng dụng GTK , hay sử dụng gksu khi chạy ứng dụng GUI KDE là hoàn toàn tốt ?
Peter.O

5

Đây thực sự không phải là một câu trả lời, nhưng nó có thể được quan tâm ...
Tôi bắt đầu có ý tưởng về những gì xảy ra với các lệnh su này,
nhưng tôi chưa hoàn toàn ở đó ... Tôi vẫn sử dụng gksu. .. Đây là thêm một cuộc hành trình của sự hiểu biết đối với tôi ... và tôi wan't để hiểu nếu gksucó giá trị konsolehay kate, hoặc phải tôi sử dụng các biến thể KDE kdesu..

Dưới đây là một số kết quả của một số thử nghiệm tôi vừa thử.

From user fred's terminal, launch gnome-terminal

su style   resulting            custom   (ls)   new file
command    prompt               prompt   home   ownership
---------  -------------------- -------  -----  ----------
sudo      .root@DT:~#           fred's   fred   root
gksu       root@DT:/home/fred#  root's   fred   root
sudo -i    root@DT:~#           root's   root   root
sudo -s   .root@DT:~#           fred's   fred   root

Những kết quả này không đồng ý với Trang Tài liệu Ubuntu , nơi nó nói:

 This prevents files in your home directory becoming owned by root

CẬP NHẬT: Các biến XAUTHORITY envcho Thiết bị đầu cuối được gọi sudogksu là khác nhau (như đã đề cập trên Trang Tài liệu Ubuntu ) ..

sudo    #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -i #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -s #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
gksu    #### XAUTHORITY=/tmp/libgksu-xR2OGn/.Xauthority   

Điều này cho thấy điều đó gksuchắc chắn không giống với sudo -smệnh lệnh mà tôi đã đề cập trong câu hỏi ... và do đó, trả lời câu hỏi của người bản xứ của tôi (theo một cách nào đó vẫn còn mơ hồ) ... và câu trả lời của Chris chắc chắn khiến tôi suy nghĩ kỹ về câu hỏi này! ... Tôi cần cà phê!!


3

sudo dành cho các ứng dụng dòng lệnh, gksu / gksudo cho các ứng dụng đồ họa


Cảm ơn, câu hỏi của tôi có thể không rõ ràng như sự hiểu biết ban đầu của tôi về vấn đề này ... Tôi chủ yếu cố gắng tìm hiểu Sự khác biệt cụ thể nào khiến cả hai phải ra lệnh .. Có vẻ như sự khác biệt chính là ở cách gksuhoạt động từ một bản sao tạm thời của XAUTHORITY .. Tôi không rõ chi tiết về lý do tại sao XAUTHORITY cần được xử lý đặc biệt, nhưng là một điều quan trọng giúp phân biệt hành vi của nó vớisudo
Peter.O
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.