Как создать ссылку на /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

Если вы не хотите дублирования, вам нужно размонтировать, прежде чем удалять джейл. Вы можете подключить только для чтения, но у вас могут быть проблемы с программным обеспечением (зависит от использования тюрьмы).

Другие вопросы по тегам