Nó không chỉ gedit
sẽ bị lỗi nhưng thực ra tất cả các chương trình sử dụng giao thức X11 để nói chuyện với máy chủ đồ họa. X11 sử dụng giao thức Xauth để xác thực các máy khách kết nối. Khi bạn đăng nhập thông qua một số loại trình quản lý hiển thị, một cookie xác thực MIT-MAGIC-COOKIE-1
được tạo và ghi vào tệp ~/.Xauthority
của bạn. Tệp đó được đọc bởi các máy khách X11 và các cookie có sẵn được sử dụng để xác thực các kết nối.
Danh sách các cookie trong tập tin ~/.Xauthority
của bạn có thể được hiển thị bằng xauth list
:
$ xauth list
localhost:1012 MIT-MAGIC-COOKIE-1 bd988401cbf8xxxxxxxxxxxxxxxxxxxx
some.host.example.com/unix:1012 MIT-MAGIC-COOKIE-1 bd988401cbf8xxxxxxxxxxxxxxxxxxxx
Nếu bạn thay đổi tên máy chủ của bạn, thư viện khách hàng X11 sẽ không còn có thể tìm thấy một cookie tương ứng trong cơ sở dữ liệu xác thực và máy chủ X11 sẽ từ chối kết nối chưa được xác thực (trừ khi được định cấu hình khác).
gì bạn có thể làm là thêm một cookie phù hợp sử dụng xauth
:
$ xauth add "$(hostname)/unix:0" MIT-MAGIC-COOKIE-1 bd988401cbf8xxxxxxxxxxxxxxxxxxxx
$(hostname)
mở rộng để kết quả của lệnh hostname
và unix:0
tương ứng với biến DISPLAY
môi trường của bạn được thiết lập để :0.0
. Nếu nó là một số hiển thị khác, ví dụ: :ddd.0
, sau đó bạn nên thay đổi mục nhập máy chủ được thêm tương ứng thành "($hostname)/unix:ddd"
. Cũng lưu ý rằng giá trị của cookie được thêm phải khớp với giá trị của cookie hiện tại.
Nếu bạn không có bộ mô phỏng đầu cuối tại thời điểm đó và bạn không thể mở do lỗi xác thực, bạn có thể chuyển sang bàn điều khiển (chế độ văn bản), đăng nhập tại đó và thực hiện lệnh trên.
Nguồn
2013-12-16 13:25:44
Làm thế nào để bạn thay đổi tên máy? Bằng tay (tức là chỉnh sửa/etc/tên máy chủ) hoặc bằng cách sử dụng một công cụ? – jml
i thay đổi tên máy chủ bằng lệnh này sudo hostname master.192.168.1.44 –
Ok. Bạn có thể kiểm tra xem tên máy chủ mới của bạn có một mục nhập trong '/ etc/hosts' hay không. Nhưng, tôi không chắc chắn đây là vấn đề thực sự ... – jml