Không thể kết nối với máy chủ X: 0,0 dưới dạng siêu người dùng


10

Khi tôi trực tuyến, tôi gặp lỗi sau và công cụ không khởi động:

[root@dhcppc9 lin64]# ./ise
No protocol specified
_pn: cannot connect to X server :0.0

Nhưng mọi thứ đều ổn khi tôi không phải là một siêu người dùng. Lý do tại sao mà?

Biên tập

[root@dhcppc9 lin64]# export $(dbus-launch)
No protocol specified

bất cứ đề nghị nào?

Cũng thế

[root@dhcppc9 lin64]# xhost [+]
No protocol specified
xhost:  unable to open display ":0.0"

Đây là một cổ điển. Bạn có thể làm export $(dbus-launch)hoặc sử dụng xhost [+]để có thể khởi chạy chương trình bằng X và tài khoản siêu người dùng của bạn.
41754

Đã làm cả hai, xem chỉnh sửa ở trên
msz

Nó có thể là $ xhostđể xem quyền truy cập hiện tại và $ xhost +cho phép truy cập từ bất kỳ máy chủ lưu trữ. Bạn thường làm điều này từ một thiết bị đầu cuối ảo mà bạn biết chắc chắn có thể sinh ra các chương trình bằng X.
41754

@galegosimpatico: tại sao việc khởi chạy một máy chủ dbus sẽ giải quyết vấn đề này?
Bananguin

Khi bạn không phải là siêu người dùng, điều gì echo $DISPLAYthể hiện? Người dùng nào thực hiện quá trình xserver, bạn muốn sử dụng, thuộc về ai? (bạn có thể tìm ra cái sau bằng cách sử dụng chẳng hạn ps faux)
Bananguin

Câu trả lời:


12

Một chương trình X cần hai thông tin để kết nối với màn hình X.

  • Nó cần địa chỉ của màn hình, mà thường là :0khi bạn đang đăng nhập tại địa phương hoặc :10, :11vv khi bạn đang đăng nhập từ xa (nhưng số lượng có thể thay đổi tùy thuộc vào có bao nhiêu kết nối X đang hoạt động). Địa chỉ của màn hình thường được chỉ định trong DISPLAYbiến môi trường.

  • Nó cần mật khẩu cho màn hình. Mật khẩu hiển thị X được gọi là cookie ma thuật . Cookie ma thuật không được chỉ định trực tiếp: chúng luôn được lưu trữ trong các tệp thẩm quyền X, đó là một tập hợp các bản ghi của biểu mẫu hình thức hiển thị :42có cookie 123456. Tệp thẩm quyền X thường được chỉ định trong XAUTHORITYbiến môi trường. Nếu $XAUTHORITYkhông được đặt, chương trình sẽ sử dụng ~/.Xauthority.

Xem Mở cửa sổ trên màn hình X từ xa (tại sao "Không thể mở màn hình")? để biết thêm chi tiết.

Trong trường hợp của bạn, DISPLAYđược đặt nhưng rõ ràng các chương trình không thể tìm thấy tệp cookie. Kiểm tra giá trị XAUTHORITYtrong phiên của bạn và dưới su.

Nếu XAUTHORITYkhông được thiết lập trong phiên của bạn và suthiết lập HOMEbiến môi trường vào thư mục gốc của nhà, thì bạn cần phải thiết lập XAUTHORITYđể /home/msz/.Xauthoritynơi /home/mszlà thư mục home của bạn.

Nếu suloại bỏ XAUTHORITYkhỏi môi trường, hãy đặt nó trở lại hoặc cấu hình suđể không làm điều này.

Nếu thư mục chính của bạn nằm trên một số hệ thống tập tin như NFS, root có thể không thể đọc trực tiếp. Trong trường hợp đó, bạn có thể sao chép .Xauthoritytệp vào một vị trí khác trên hệ thống tệp không phải NFS:

XAUTHORITY_COPY=$(umask 077; mktemp)
cat "${XAUTHORITY:-~/.Xauthority}" "$XAUTHORITY_COPY"
XAUTHORITY="$XAUTHORITY_COPY" su
rm "$XAUTHORITY_COPY"
unset XAUTHORITY_COPY

1
Tôi đã tạo ra một liên kết tượng trưng và nó cũng hoạt động. Đây là:ln -s /home/otheruser/.Xauthority ~
Can Geliş

XAUTHORITY đối với tôi đã được đặt thành một tệp không còn tồn tại:
pbhj

4

Bạn đang chạy xhost với quyền root!

chạy xhost như người dùng bình thường xhost +, sau đó trở thành root rồi thử lại.

btw như những người khác đã chỉ ra xhost +cho phép bất kỳ người dùng từ bất kỳ máy chủ lưu trữ


Nhiều hệ thống hiện đại được thiết lập để xhostkhông hoạt động. Nếu có, thì ít nhất là chạy xhost +localhost, không xhost +!
Gilles 'SO- ngừng trở nên xấu xa'

Hãy hiểu, đó là một điểm tốt. Cảm ơn lời khuyên của bạn.
X Tian

0

XAUTHORITY đối với tôi được đặt là một tệp không còn tồn tại:

$ echo $XAUTHORITY

/tmp/xauth-1000-_0

Tôi cũng vậy

unset XAUTHORITY

và sau đó có thể kết nối với ứng dụng của tôi dưới dạng root bằng kdesudo (trong trường hợp này kdesudo bleachbit)


0

Chạy như người dùng bình thường

xhost + localhost

sau đó kích hoạt siêu người dùng bằng cách

sudo su 

cuối cùng đi đến ví dụ máy chủ

cd /usr/local/Ampps

cuối cùng chạy ./Ampps

cảm ơn tôi năm 2020


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.