X.org làm việc không có ổ cắm trong chroot?


8

Tôi có một thiết lập chroot và tôi đã chạy các ứng dụng đồ họa từ đó mà không gặp vấn đề gì. Thiết lập duy nhất tôi đã thực hiện được thiết lập DISPLAY=:0và nó hoạt động. Tuy nhiên tôi luôn nghĩ rằng các socket miền Unix được sử dụng cho X11 vì vậy tôi không thể hiểu tại sao nó lại hoạt động. Tôi đã đào một ít và hóa ra tôi đã đúng. Máy chủ X.org của tôi được khởi chạy cùng với -nolisten tcpcờ và tôi có một ổ cắm miền unix /tmp/.X11-unixnhưng bằng cách nào đó, chroot của tôi có thể khởi chạy các ứng dụng đồ họa trên màn hình X11 đó mà không cần bất kỳ ổ cắm nào. Tôi chưa bao giờ liên kết cứng ổ cắm với chroot, thực tế chúng thậm chí không nằm trên cùng một hệ thống tệp. /tmp/.X11-unixlà hoàn toàn trống rỗng trên chroot. Làm thế nào có thể chroot của tôi có thể khởi chạy các ứng dụng đồ họa trên màn hình X11 của tôi?

Câu trả lời:


4

Máy chủ X cũng hỗ trợ các socket trừu tượng, hoạt động giống hệt với socket UNIX và có tên đường dẫn tương tự như socket UNIX, nhưng tên đường dẫn bắt đầu bằng ký tự NUL. Xem tài liệu về "trừu tượng" trong trang web unix (7) . Một ổ cắm trừu tượng tồn tại một cách hiệu quả trong tất cả các không gian tên và hệ thống tệp; bạn không phải liên kết bất cứ thứ gì vào chroot hoặc không gian tên để sử dụng nó.

Có lẽ cả máy chủ X và máy khách đều đang sử dụng một ổ cắm trừu tượng để liên lạc? Các máy khách X sử dụng các thư viện máy khách X tiêu chuẩn sẽ tự động cố gắng sử dụng một ổ cắm trừu tượng, trước khi chúng cố gắng sử dụng ổ cắm UNIX mặc định. Trong libxcb, xem _xcb_open_xcb_open_abstracttrong src / xcb_util.c .


Hay đấy. Tôi sẽ xem và xem nếu đó là những gì đang xảy ra.
Scoopta

1
Đúng, đó dường như là nó. netstatcho thấy một ổ cắm được gọi @/tmp/.X11-unix/X0và từ việc nhìn xung quanh @ dường như tượng trưng cho sự trừu tượng của nó.
Scoopta

2
Lưu ý rằng các socket trừu tượng là một phần mở rộng dành riêng cho Linux cho các socket Unix di động. Trên trang người dùng Linuxunix.7 : "Linux cũng hỗ trợ một không gian tên trừu tượng độc lập với hệ thống tệp." và "Không gian tên ổ cắm trừu tượng là một phần mở rộng Linux không thể truy cập được."
Andrew Henle
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.