У меня есть команда, которая жестко запрограммирована для использования /tmp
как его рабочий каталог.
/tmp
довольно мала, и команда наверняка ее заполнит, что вызовет проблемы для других системных процессов.
Я не могу изменить команду, поэтому хочу перемонтировать /tmp
в другом месте, видимом только текущему пользователю / оболочке, не затрагивая других пользователей / процессы.
Это возможно?
Обновление: обнаружено, что команда использует TMPDIR
переменная, которую я могу переопределить, но мне все еще интересно узнать, есть ли команда пользовательского пространства Linux, которую я могу использовать.
Команда unshare может сделать практически то, о чем вы просите:
unshare -m "$SHELL"
После этого вы можете локально изменить любые крепления только на эту оболочку.
Я рекомендую, чтобы любые команды монтирования, которые вы запускаете внутри оболочки без общего доступа, использовали -n
флаг, потому что иначе он изменится /etc/mtab
который будет виден всей системе. Ты наверное хочешь df
и mount
команды запускаются вне этой оболочки, чтобы по-прежнему отображать правильную файловую систему, установленную на /tmp
.