Debian chroot chặn PTTY trên máy chủ


8

Tôi đã tạo một môi trường chroot dựa trên Debian bằng debootstrapArch Linux và lấp đầy nó bằng cuộc sống như sau:

#!/bin/sh

mount -t proc proc $CHROOT/proc
mount -t devpts devpts $CHROOT/dev/pts

chroot $CHROOT /bin/bash --login -c "/etc/init.d/ssh start"

Vấn đề là sau khi thực thi đoạn script trên, tôi không thể mở các thiết bị đầu cuối mới trên hệ thống máy chủ nữa:

urxvt: can't initialize pseudo-tty, aborting.

Việc tắt chroot(dừng sshd, ngắt kết nối Proc và dev / pts) sẽ không mang lại các thiết bị đầu cuối mới trên máy chủ.

Tôi đang thiếu gì ở đây?


1
Xin vui lòng gửi đầu ra của ls -l /dev/ptstrước và sau. Đâm trong bóng tối: có mount --bind /dev/pts $CHROOT/dev/ptstốt hơn không? Bạn có thể sẽ tiết kiệm rất nhiều nỗ lực bằng cách sử dụng schroot thay vì xây dựng của riêng bạn.
Gilles 'SO- ngừng trở nên xấu xa'

mount --bindđã lừa, cảm ơn! ;) Đầu ra của ls -l /dev/ptskhông khác nhau.
lynix

Câu trả lời:


4

Khi bạn chạy mount -t devpts devpts $CHROOT/dev/pts, cái này gắn kết một thể hiện riêng biệt của hệ thống tập tin devpts trong chroot. Một cách khác để tạo ra các devpts có sẵn trong chroot là sử dụng mount mount, điều này làm cho cùng một thể hiện của hệ thống tập tin có sẵn tại một vị trí mới. Gắn kết giống như tạo một liên kết cứng, chỉ cho các điểm gắn kết thay vì các tệp.

mount --bind /dev/pts "$CHROOT"/dev/pts

Các trường hợp riêng biệt của devpts chia sẻ cùng một tệp (nếu bạn tạo hoặc xóa thiết bị đầu cuối hoặc thay đổi siêu dữ liệu của nó, nó được phản ánh trong tất cả các trường hợp). Tuy nhiên, rõ ràng có một số khác biệt dưới mui xe làm cho nó không hoạt động. Gắn kết liên kết đảm bảo rằng mọi thứ cần được đồng bộ hóa đều được đồng bộ hóa vì đó là cùng một hệ thống tệp chứ không chỉ đơn thuần là một hệ thống giống hệt nhau.


1
Tôi vừa gặp vấn đề ngược lại với một chroot Debian chạy trên HĐH dựa trên QTS Linux của QNAP. Tôi đã sử dụng một mount mount khiến màn hình bị lỗi và chuyển sang mount devpts thay vì sửa nó.
markshep
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.