Có cách nào dễ dàng hơn hoặc chính xác hơn để mở gedit với quyền root không?


19

Tôi có Ubuntu 12.04 chạy trong một máy ảo trên hộp ảo. Sự tồn tại của nó chủ yếu là một 'đồ chơi' để chơi với Ubuntu, vì vậy, vì lý do này, tôi muốn GUI (đó có phải là 'Dash' trong ub Ubuntu 12.04 không? Dù sao ...)

Một điều tôi hiện đang sử dụng máy này là máy chủ LAMP. Tôi sử dụng 'gedit' để chỉnh sửa các tệp của mình, nhưng vì tôi chưa đặt quyền chính xác nhưng tôi chỉ mở nó bằng sudo trong thiết bị đầu cuối.

Ngay bây giờ, để cố gắng đơn giản hóa quá trình này, tôi đã tạo một tập lệnh shell trên máy tính để bàn với một công việc rất đơn giản - sudo gedit

Tôi không thể nghĩ rằng phải có một cách rõ ràng hơn nữa để mở gedit với quyền root từ GUI hơn thế này. Vậy có phải không?

Chỉnh sửa: Tôi chỉ 'cải thiện' tập lệnh của mình bằng cách thay thế sudo bằng gksudo. Bây giờ tôi không phải mở cửa sổ terminal trong khi gedit đang mở. Vì vậy, tôi đoán rằng điều này khá thuận tiện cho bây giờ :) Sẽ tốt hơn, vì lợi ích của kiến ​​thức, để biết liệu đây có phải là bất cứ điều gì gần với cách người dùng ub Ubuntu dày dạn hơn sẽ làm loại điều này không.


2
Có, gksudo(hay thường được gọi là gksu) nó là thứ mà hầu hết mọi người sử dụng. Rất nhiều tài liệu đọc: askubuntu.com/questions/270006/... askubuntu.com/questions/197772/... askubuntu.com/questions/284306/... askubuntu.com/questions/11760/...
Seth

2
Seth, bạn có sẵn sàng gửi câu trả lời của bạn như một câu trả lời không? Điều này có vẻ được giải quyết.
Travis G.

"Bây giờ tôi không phải mở cửa sổ đầu cuối trong khi gedit đang mở." <- Bạn có thể đã biết về điều này, nhưng nếu bạn thêm &vào một lệnh như được hiển thị ở đây , bạn cho phép cửa sổ đầu cuối của tập lệnh shell đóng ngay lập tức khi geditđược khởi chạy thay vì đợi nó đóng. Thủ thuật này nên hoạt động gksudomà không có vấn đề.
IQAndreas

Câu trả lời:


19

Sử dụng gksudo gedit.

gksudolà tương đương sudovới các chương trình đồ họa, không an toàn để chạy bằng cách sử dụng sudo.


4
Vấn đề là, gksukhông được cài đặt theo mặc định trong Ubuntu 13.04 nữa. Tôi thực sự rất thích nhìn thấy một câu trả lời cho những người vào ngày 13.04 trở lên. Giải pháp thay thế được đề xuất là pkexec, nhưng nó không hoạt động = /.
Alaa Ali

1
@Alaa Nhưng nó vẫn còn trong kho lưu trữ, vì vậy nhanh chóng sudo apt-get install gksunên cài đặt nó cho bạn.
IQAndreas

Nếu bạn muốn một lời giải thích cho lý do tại sao không nên sử dụng sudo: sự khác biệt giữa các loại gksudo nautilus và và sudo nautilus là gì?
IQAndreas

4
@IQAndreas, tôi biết nó nằm trong kho, nhưng thật bất tiện, nếu tôi trả lời người dùng mới và muốn anh ta chỉnh sửa tệp dưới dạng root, hãy nói với anh ta "trước tiên, chạy sudo apt-get install gksu". Ngay bây giờ, đó là một vấn đề nan giải, ít nhất là đối với tôi. Tôi không thể nói cho anh ta để "sử dụng pkexec", bởi vì nó không làm việc, và nó quá mạo hiểm để sudo -isau đó gedit. Ngoài ra, tôi biết sự khác biệt giữa gksudosudo=), những gì bạn có thể đã liên kết với tôi thay vào đó là: Tại sao gksu không còn được cài đặt mặc định trong 13.04? .
Alaa Ali

@Alaa Điểm hợp lệ liên quan apt-get. Trên thực tế, bình luận thứ hai của tôi (câu hỏi có liên kết) được hướng vào câu trả lời bạn đưa ra, và không phải là phần tiếp theo của cuộc thảo luận trong các bình luận (tôi cho rằng người đăng có thể muốn biết lý do tại sao nó "không an toàn khi chạy bằng cách sử dụng sudo ").
IQAndreas

7

Tôi thấy mình chạy geditroot khá thường xuyên, vì vậy tôi đã thêm tùy chọn vào menu chuột phải trong Unity (nó sử dụng cùng một lệnh với câu trả lời đã chọn, gksu gedit).

Bạn sẽ cần chỉnh sửa một *.desktoptệp để thêm tùy chọn menu và bạn có hai lựa chọn:

  • /usr/share/applications/gedit.desktop (yêu cầu quyền truy cập root để chỉnh sửa) - Tùy chọn menu sẽ được thêm cho tất cả người dùng. Lưu ý rằng bạn có thể cần phải chỉnh sửa lại tệp này, thêm tùy chọn nếu một bản cập nhật cho gedit xảy ra ghi đè lên các thay đổi của bạn.
  • ~/.local/share/applications/gedit.desktop (Nếu bạn không thể tìm thấy nó ở đó, hãy tạo một bản sao của cái được tìm thấy /usr/share/applications/và lưu nó vào vị trí mới này) - Tùy chọn menu sẽ chỉ khả dụng cho người dùng được chỉ định và được coi là "thực hành tốt hơn". Lưu ý rằng nếu bạn đã gắn nó vào thanh Unity của mình, bạn sẽ cần chọn Unlock from Launchertrên biểu tượng GEdit hiện có của mình, sau đó thêm lại phiên bản "tùy chỉnh" của bạn. Những thay đổi này sẽ duy trì ngay cả khi GEdit được cập nhật.

Chỉnh sửa tệp văn bản gedit.desktop, thêm khối mã sau (bạn có thể sử dụng hai khối hiện có làm mẫu):

[Desktop Action RootWindow]
Name=Open a Root Window
Exec=gksu gedit
OnlyShowIn=Unity;

Tiếp theo, thêm hành động mới vào danh sách (nên ở khoảng dòng 19 của tệp văn bản):

Actions=Window;Document;RootWindow;

Bây giờ, nhấp chuột phải vào cửa sổ trình soạn thảo văn bản trong Unity sẽ hiển thị tùy chọn mới tiện dụng này:

Ubuntu Unity: Mở Gedit là Root


Tôi cũng có thiết lập tương tự để mở trình quản lý tệp dưới dạng root, chạy gksu nautilus.
IQAndreas

2

gksudo gedithoạt động trong 16.04 LTS, nhưng trong 17.10 với Wayland gksudokhông hoạt động.


2

Sử dụng admin://trước tên tệp sẽ hiển thị dấu nhắc mật khẩu GUI tiêu chuẩn cho WM / shell tương ứng của bạn.

Vì vậy, ví dụ, nếu bạn muốn chỉnh sửa repos của mình, thay vì gõ sudo gedit /etc/apt/sources.listbạn sẽ gõ gedit admin:///etc/apt/sources.list. Nó hoạt động về cơ bản cho tất cả các chương trình GUI, không chỉ Gedit.


Câu trả lời này là cách chính xác để làm điều đó ngay bây giờ. Câu trả lời được chấp nhận là chính xác cho các phiên bản trước của Ubuntu (trước ngày 17.04, tôi nghĩ vậy).
PJ Singh

0

Bạn có thể mở Nautilus với quyền root, gksu nautilusbây giờ bất kỳ tệp văn bản nào bạn mở từ cửa sổ đó sẽ mở trong Gedit với quyền root.


@DavidFoerster không hoàn toàn, imo :-)
guntbert

0

gksudorõ ràng là không có sẵn trên các phiên bản Ubuntu mới hơn và gksukhông hoạt động với tôi, nhưng câu trả lời này rất hữu ích trong trường hợp của tôi (Ubuntu 17.04).

Sử dụng visudođể thêm dòng sau vào tệp cấu hình sudo của bạn:

Defaults env_keep="XAUTHORIZATION XAUTHORITY TZ PS2 PS1 PATH LS_COLORS KRB5CCNAME HOSTNAME HOME DISPLAY COLORS"`

0

EDITOR=gedit sudo -e được khuyến khích.

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.