Không có giao thức nào được chỉ định trong khi chạy vim với sudo


9

Gần đây tôi bắt đầu nhận được "Không có giao thức được chỉ định" khi sử dụng sudo vim. Tôi đoán đó chỉ là một cảnh báo, bởi vì mọi thứ đều hoạt động bình thường (tôi có thể mở, chỉnh sửa và lưu tệp). Thông báo không xuất hiện nếu tôi sử dụng sudo -E vimvì vậy tôi nghĩ rằng tôi đã làm gì đó sai khi chỉnh sửa /etc/profilegần đây, nhưng tôi không chắc chắn. Làm thế nào tôi có thể sửa lỗi này?


1
Không phải mọi thứ đều hoạt động bình thường. Hỗ trợ chuột không hoạt động, nó cần một giao thức như gpm hoặc giao thức chuột xterm.
ninjalj

Câu trả lời:


8

Một bản nâng cấp gần đây đã thay đổi cài đặt mặc định cho sudo. Nếu bất cứ ai có vấn đề này kiểm tra sudoercấu hình của bạn . Từ một ví dụ trong trang man:

# Run X applications through sudo; HOME is used to find the
# .Xauthority file.  Note that other programs use HOME to find
# configuration files and this may lead to privilege escalation!
Defaults env_keep += "DISPLAY HOME"

Hãy chắc chắn rằng bạn có một cái gì đó tương tự /etc/sudoers(sử dụng visudođể chỉnh sửa tệp nếu bạn cần).

EDIT: Tôi không biết chính xác từ khi nào, nhưng ít nhất xauth 1.0.9 hỗ trợ biến môi trường XAUTHORITY. Cài đặt và để HOME không bị ảnh hưởng, cũng sửa cảnh báo giao thức và là giải pháp tốt hơn, vì không có tài nguyên IPC nào có thể ghi được trên thế giới (ổ cắm / ống) được tạo ra chỉ vào tài nguyên gốc (một con đường để leo thang đặc quyền). xauth không tự động xuất biến ra môi trường, vì vậy cách tốt nhất là đặt nó trong khởi tạo shell của bạn.


3

Theo chủ đề này , có hai giải pháp khả thi cho vấn đề của bạn:

Đặt dòng sau trong .bashrctập lệnh người dùng root của tôi

export XAUTHORITY=/home/<user>/.Xauthority

sau đó tôi đã sao chép .Xmasterity vào root, tức là

sudo cp ~/.Xauthority /root

và bây giờ cảnh báo đã biến mất.

Bạn cũng có thể thử chạy qua gksudo.

Dù sao, cả hai đều đáng để thử ...


Tôi sao chép .Xauthoritytới /rootvà đó là nó!
phunehehe

Không, tôi đã sai, sau khi khởi động lại, tôi gặp lỗi "khóa không hợp lệ".
phunehehe

1
Theo như tôi nhớ thì nội dung của tệp .Xmasterity thay đổi, vì vậy bạn nên liên kết nó thay vì sao chép.
Adam Byrtek

2

Mặc dù câu hỏi đã có một số câu trả lời, nhưng không có câu trả lời nào phù hợp với tôi. Tôi đã giải quyết nó thông qua sự kết hợp của một vài gợi ý ở trên và một số bit của tôi cho bản phân phối Debian của tôi.

Tôi đã tạo một liên kết tượng trưng để .Xauthoritytập tin cho root và tất cả người dùng khác. Vấn đề đã được giải quyết cho người dùng root, bởi vì root có quyền truy cập vào tệp đó, nhưng không phải cho người dùng khác. Tôi đã thêm quyền chỉ đọc cho tất cả người dùng khác đối với tệp .Xmasterity.

#do this for all other users who do not have .Xauthority file    
ln -s /home/userwithxauth/.Xauthority .Xauthority

#run the following command to give read only access permission to .Xauthority file
chmod 644 /home/userwithxauth/.Xauthority
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.