Предположим, есть двоичное приложение, которое всегда записывает свои данные /tmp
.
Как я мог подделать / mock /tmp
ради этого бинарного файла, как какой-то другой каталог (например home/tmp
)?
Давайте предположим, что у меня нет средств для изменения этого двоичного файла, чтобы заставить его использовать другой каталог.
chroot
илиlxc
быть в состоянии сделать это. Также очень приятно знать, что есть способ сделать это, не будучи суперпользователем.chroot
требует дополнительной настройки (вы заменяете весь/
, а не только/tmp
любой доступ/etc
,/var
и т. Д., Также будет внутри «тюрьмы») и создает собственные проблемы безопасности («заключенная в тюрьму» программа может уметь манипулировать частями файловой системы, которые обычно были бы недоступны, если вы не будете осторожны с разрешениями при настройке вашей подделки/
)./
не ограничено только для записиroot
, «заключенный в тюрьму» пользователь может создавать или заменять файлы, которые, кажется, находятся в ключевых местах системы, таких как/etc/passwd
; затем это можно использовать для повышения привилегий, что было бы невозможно за пределамиchroot
. Многие FTP-серверы Linux, которые традиционно используют,chroot
чтобы скрыть остальную часть файловой системы, теперь отказываются делать это, если каталог доступен для записи пользователю без полномочий root.Большинство POSIX-совместимого программного обеспечения будет учитывать переменную среды TMPDIR, например
источник