gksu: Gtk-CẢNH BÁO **: không thể mở màn hình :: 0


40

Tất cả các gksu đột ngột ngừng làm việc cho tôi:

~$ gksu gparted

(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0

Điều tương tự cũng xảy ra với gparted-pkexec:

~$ gparted-pkexec 
No protocol specified

(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0

Điều gì có thể có thể gây ra điều này?

Tôi không chạy nó thông qua SSH hoặc VNC. Đây là localhost trong một cửa sổ terminal bình thường .


Bạn không làm việc trong giao diện người dùng đồ họa hoặc cố gắng chạy chương trình trên hệ thống (ví dụ: qua ssh) mà không có giao diện đồ họa nào cung cấp.
AB

1
@AB Tôi nên làm rõ rằng điều này không thông qua ssh. Đó là trên máy chủ cục bộ trong một cửa sổ thiết bị đầu cuối rất bình thường. Mở nguyên vẹn gparted từ menu ứng dụng có kết quả tương tự.
d_inevitable

Bạn không nên sử dụng gksuđể chạy GParted. gpartedsử dụng polkit để có được đặc quyền nâng cao.
muru

@muru khi tôi chạy gpartedmà không gksunhận đượcRoot privileges are required for running gparted.
d_inevitable

Ok, thử gparted-pkexec(không có gksu) hoặc gksu gpartedbin.
muru

Câu trả lời:


67

Nếu chạy Ubuntu 17.10 hoặc mới hơn, vấn đề này có thể phát sinh khi một ứng dụng chưa được cập nhật với sự hỗ trợ đầy đủ cho Wayland. Như một giải pháp cho đến khi ứng dụng được cập nhật, bạn có thể chạy

xhost +SI:localuser:root

sẽ cho phép rootngười dùng hiển thị các ứng dụng trên máy tính để bàn của bạn. Đồng thời xem phần Hỏi & Đáp này để biết các cách giải quyết khác có thể xảy ra: Tại sao không gksu / gksudo hoặc khởi chạy một ứng dụng đồ họa với sudo hoạt động với Wayland?

nguồn


@MDMower Thx để chỉnh sửa, đã học được điều gì mới =)!
Mắt Cutton

@pomsky Thx để thêm liên kết;)!
Mắt Cutton

Trong 18.04 X-Org sẽ được sử dụng lại làm mặc định. Vậy vấn đề này nên vanis rồi. xem
Cutton Eye

11

Hãy thử chạy xhost +localhosttrong thiết bị đầu cuối của bạn, và sau đó chạy lại lệnh. Điều này cho phép tất cả người dùng trên hệ thống của bạn (tức là root) mở các cửa sổ trên màn hình của bạn. Đảm bảo sử dụng + localhost chứ không chỉ đơn giản là +, vì nó an toàn hơn khi chỉ cho phép kết nối từ localhost hơn bất cứ nơi nào.

Để làm điều này vĩnh viễn, hãy chỉnh sửa ~/.xinitrctệp như thế này:

Chạy gedit ~/.xinitrc

Chỉnh sửa tập tin để trông như thế này (nó nên trống khi bắt đầu):

#! /bin/bash
xhost +localhost &

Bây giờ lưu tệp, đăng xuất và đăng nhập. Bây giờ mọi thứ sẽ chạy tốt với sudo.

Tôi không thể tái tạo vấn đề của bạn vào ngày 14.04, nhưng điều này đã có tác dụng với tôi trong quá khứ khi sudo / gksu đã ném lỗi này.

Nguồn:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubfox.com/CustomXSession

1
Điều này thực sự làm việc. Vì vậy, điều đó có nghĩa là hạn chế kiểm soát truy cập của nó? Bất kỳ ý tưởng nguyên nhân của điều này có thể là gì?
d_inevitable

Vâng, đó là một tính năng bảo mật của X. Nó chỉ cho phép các kết nối từ người dùng của bạn đến xserver cho đến khi được nói khác đi, tôi nghĩ vậy. Tôi không chắc chắn tại sao nó lại cần thiết cho một số ứng dụng chứ không phải các ứng dụng khác và tôi không biết tại sao nó lại được thực hiện cho tất cả mọi thứ. Có lẽ bạn đã mày mò và thắt chặt an ninh ở đâu đó?
Đánh dấu Paskal

2
Điều này dẫn đến một lỗi: xhost: không thể mở hiển thị ""
IgorGanapolsky

5
Trên redis , nó đã được đề xuất để sử dụng xhost +local:. Sau đó, tôi đã có thể khởi chạy gparted từ thiết bị đầu cuối, nhưng sử dụng xhost +localhostkhông hoạt động.
rmin

1
Thật! xhost +local:cố định của tôi! Nó mang lại non-network local connections being added to access control listnhững gì cần thiết.
lobner

5

Thực hiện các điều sau trong thiết bị đầu cuối của bạn:

nano /home/user/.bashrc # user = name of your user

Thêm dòng sau vào cuối.

export XAUTHORITY=$HOME/.Xauthority

2
Sẽ hữu ích nếu bạn có thể thêm một số giải thích về cách giải quyết vấn đề này và liệu nó có bất kỳ tác dụng phụ bất lợi nào không?
Geoff
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.