Как создать ссылку на /dev в chroot-тюрьме, которая защищена от удаления?
Мне нужно создать chroot-джейл для моей программы. Программа нуждается в содержимом /dev для правильного выполнения. Я не хочу копировать содержимое /dev в изолированную тюрьму, потому что я хочу избежать дублирования элементов в тюрьме.
Я нашел 2 решения этой проблемы, но ни одно из них полностью не решает мою проблему:
- Монтирование /dev: работает, но системный администратор может удалить /dev, если он удаляет тюрьму chroot через "rm -rf". Это плохо...
- Символическая ссылка в /dev: не работает, потому что не работают символические ссылки, указывающие за пределы тюрьмы.
Знаете ли вы решение, которое позволяет избежать дублирования, безопасно при удалении и работает?
1 ответ
На Linux:
- Вы можете смонтировать файловую систему devfs: mount -t devtmpfs none /jail/dev
На freebsd:
- Вы можете смонтировать файловую систему devfs: mount -t devfs none /jail/dev
- Или для монтирования папки (не рекомендуется для dev): mount_nullfs /dev /jail/dev
Если вы не хотите дублирования, вам нужно размонтировать, прежде чем удалять джейл. Вы можете подключить только для чтения, но у вас могут быть проблемы с программным обеспечением (зависит от использования тюрьмы).