Không thể mở Gedit với quyền root


14

Khi tôi chạy, sudo gedit /path/to/some/random/filetôi gặp lỗi sau

** (gedit:6262): WARNING **: Command line `dbus-launch --autolaunch=7f8731869e1c690b8205727e0000000a --binary-syntax --close-stderr' exited with non-zero exit status 1: Autolaunch error: X11 initialization failed.
Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Sử dụng gksudokhông giúp ích gì

Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.  

Bất cứ ai giúp đỡ. Tôi cần có khả năng này để mở tệp trong Gedit với quyền root.
Tôi thấy câu hỏi này có cùng lỗi nhưng không có giải pháp Không thể khởi chạy gedit bằng sudo


EDIT
Tôi tìm thấy bài đăng này trong Diễn đàn Ubuntu .
Đây là những hướng dẫn:

  1. echo $ HIỂN THỊ # bạn sẽ cần giá trị này 3 dòng bên dưới
  2. sudo -i # hoặc "su -" trên Slackware cũ
  3. hợp nhất xauth ~ người ngoài hành tinh / .Xmasterity # sử dụng tên người dùng của riêng bạn ở đây thay vì "người ngoài hành tinh"
  4. xuất HIỂN THỊ =: 0,0 # sử dụng giá trị của HIỂN THỊ bạn đã thấy 3 dòng trước

Khi đến lệnh số 3, tôi đã gặp lỗi này
xauth: file /root/.Xauthority does not exist

Có lẽ thông tin mới này có thể làm sáng tỏ hơn.


Bạn đã thử gksudo gedit /path/to/the/file/namethay thế?
AzkerM

@AzkerMohamed Yah, như câu hỏi của tôi nói, sử dụng gksudohoặc gksutrả về cùng một lỗi.
Parto

1
Có vẻ giống như trường hợp này, Askubfox.com/questions/175611/ trên mạng
user.dz

Tôi đã tạo một kịch bản cho mục đích này: gist.github.com/wachambo/bd22e12db2d5a46dc109bd0d553733be
Alejandro Blasco

Câu trả lời:


13

Cuối cùng đã tìm thấy một câu trả lời. Từ câu hỏi này Không thể kết nối với X Server khi chạy ứng dụng với sudo và đặc biệt là câu hỏi này Lỗi khi cố chạy ứng dụng bằng sudo hoặc gksudo .

Tôi đã thêm dòng Defaults env_keep+="DISPLAY"vào cuối visudotập tin tại /etc/sudoers.

Yay, tôi đã sudo gedittrở lại!

BIÊN TẬP

Đôi khi lại gặp lỗi tương tự.

Đã thực hiện thêm một số nghiên cứu, đặc biệt là câu trả lời này https://askubfox.com/a/137584/163331 và nhận ra tôi phải thêm nhiều tùy chọn hơn vào visudotệp. Thay vì Defaults env_keep+="DISPLAY", tôi đã sử dụng dòng này:

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

Tại sao thêm HOME vào env_keep?
muru

9

Chạy bất kỳ ứng dụng giao diện đồ họa nào với quyền root đều có thể dẫn đến hỏng tệp, đặc biệt nếu ứng dụng giao diện đồ họa là trình soạn thảo văn bản. Ngoài ra gksu, gksudokhông hoạt động để bắt đầu các ứng dụng đồ họa gốc trong Wayland trong Ubuntu 17.10: Tại sao gksu / gksudo không hoạt động với Wayland? và gói gksu đã bị loại bỏ khỏi kho Ubuntu mặc định trong Ubuntu 18.04 trở lên.

Nautilus Admin ( nautilus-admin ) là một tiện ích mở rộng Python đơn giản cho trình quản lý tệp Nautilus có thêm một số hành động quản trị vào menu chuột phải:

  • Mở với tư cách Quản trị viên: mở thư mục trong cửa sổ Nautilus mới chạy với quyền quản trị viên (root).
  • Chỉnh sửa là Quản trị viên: mở tệp trong cửa sổ Gedit chạy với quyền quản trị viên (root).

Để cài đặt Nautilus Admin trong tất cả các phiên bản Ubuntu được hỗ trợ hiện tại, hãy mở terminal và gõ:

sudo apt install nautilus-admin  

Mặc dù có các lệnh để chạy các ứng dụng đồ họa dưới dạng root, nhưng bạn nên sử dụng trình soạn thảo văn bản nano, thường được chạy từ thiết bị đầu cuối, để chỉnh sửa các tệp dưới dạng root. Trình soạn thảo văn bản Nano được bao gồm trong cài đặt Ubuntu mặc định.

Nano rất dễ sử dụng. Các hướng dẫn sử dụng trình soạn thảo nano luôn được tìm thấy ở cuối mỗi trang. Hai phím tắt nano duy nhất mà bạn cần biết là dành cho WriteOut và Thoát. Nhấn tổ hợp bàn phím Ctrl+ Ovà sau đó nhấn Enterđể lưu tệp đang được chỉnh sửa. Nhấn tổ hợp bàn phím Ctrl+ Xđể thoát nano.

Nếu bạn có thói quen chỉnh sửa các tập tin như root đúng cách, bạn sẽ giảm khả năng mắc lỗi có thể rất tốn thời gian để sửa.


1
+1 cho nanotrình chỉnh sửa. Một trong những trình soạn thảo tốt nhất mà bất cứ ai cũng có thể tìm thấy dễ dàng hơn để hoạt động.
AzkerM

@Karel Cuối cùng tôi đã sử dụng nano để thực hiện các thay đổi nhưng tôi cần Gedit gốc của tôi trở lại.
Parto

1
Đây là một lời khuyên tốt, nhưng đây không phải là câu trả lời. Những người Linux thích thiết bị đầu cuối, nhưng GUI là tuyệt vời cho các tác vụ phức tạp và có UX tốt hơn.
azerafati

Bạn có thể tùy chỉnh trình soạn thảo mặc định của sudoeditlệnh (theo mặc định là nano): Làm cách nào tôi có thể thay đổi trình chỉnh sửa mặc định của lệnh sudoedit thành vim? nhưng bắt đầu các trình soạn thảo GUI với quyền root có thể gây ra sự cố trong Ubuntu 17.10 và sau đó với wayland.
karel

5

Trong Ubuntu 17.10, ít nhất, bạn có thể làm điều này:

gedit admin:///path/to/some/random/file

Bạn sẽ được nhắc nhập mật khẩu của mình và sau đó tệp sẽ được mở để chỉnh sửa dưới dạng root.


Hoạt động dưới 18.04 cũng ...
Elder Geek

4

Đối với gedit, hãy thử điều này:

sudo -H env DISPLAY=:0 gedit

1
Bắt lỗi tương tự.
Parto

1

Tôi đang cố gắng tóm tắt tất cả thông tin trong các câu trả lời khác trên trang này:

Con đường:

Tùy chọn duy nhất có vẻ được sử dụng nanohoặcvi/vim

Xorg:

thử đi

sudo -H env DISPLAY=:0 gedit

Nếu nó hoạt động có lẽ có nghĩa là bạn cần thêm một số tùy chọn vào tập tin cấu hình sudo

sudo visudo

Cố gắng thêm dòng này vào cuối

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

Tại sao thêm HOME vào env_keep?
muru

gedithoạt động tốt trong Wayland. Xin vui lòng xem câu trả lời tôi vừa đăng.
Gunnar Hjalmarsson

0

Tôi chỉ có vấn đề tương tự. Tôi đang sử dụng Debian Jessie và để bắt đầu gedit khi root dòng này cuối cùng đã hoạt động:

sudo -H gedit
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.