Управление каталогом /tmp в Linux

Каталог /tmp - это временное место для хранения файлов. Пользователи также имеют доступ на запись в этот каталог, что может быть плохо, но есть решение.

Поднимите руки, сколько из вас любят перезагружать свои серверы? Я не вижу ни одной руки.

Linux

Длительное время безотказной работы впечатляет, не так ли? Это делает вас одним из крутых ребят, когда вы хвастаетесь своим 853-дневным временем безотказной работы производственной системы. Что не так круто, так это то, что ваши пользователи любят использовать /tmp как свою личную свалку, не обращая внимания на здоровье системы в целом или ваши права на хвастовство временем работы. А перезагрузка не избавляет от пользовательских файлов, только от системных - и даже это облегчение временное, пока службы не перезапустятся и пользователи не откроют приложения.

Исключением из правила не удалять пользовательские временные файлы после перезагрузки является включение tmp.mount, но это тема для другой статьи.

Невозможно заставить пользователей соблюдать политику своевременного удаления файлов из каталога /tmp. Итак, что же делать разочарованному системному администратору, когда у вас десятки, сотни или даже тысячи каталогов /tmp и пользователей? Ответ заключается в развертывании сценариев ведения пользовательских файлов.

Вы можете создать сценарии ведения домашнего хозяйства и поместить их в crontab, чтобы периодически удалять пользовательские файлы из каталога /tmp. Это досадная, но необходимая услуга для ваших пользователей. Большинство опытных системных администраторов скажут вам, что не следует удалять файлы из /tmp, если вы не знаете, что они не используются. Это хороший совет. Некоторые службы записывают файлы блокировки в /tmp, некоторые приложения используют его, и пользователи используют его. Итак, как определить, какие файлы ваш сценарий домашней уборки может удалить без проблем?

Как насчет фильтрации файлов по времени последнего обращения? Это хороший выбор, если у вас есть ограничение по времени хранения файлов в /tmp. Например, если вы предупредите своих пользователей, что файлы, оставленные в каталоге /tmp, будут удалены, если к ним не обращались в течение двух дней, то они должны обратить на это внимание. Использование времени последнего доступа для пользовательских файлов решает проблему, если вы также исключите файлы, принадлежащие пользователю root. Например, используйте:

Этот сценарий отобразит все файлы в каталоге /tmp, не принадлежащие пользователю root, к которым обращались более двух дней назад. Теперь добавим переключатель удаления команды:

Скопируйте этот текст в файл, сделайте его исполняемым и создайте запись в crontab, которая будет запускать этот скрипт каждые восемь часов. Например, вы можете добавить в crontab следующее:

Этот сценарий и расписание гарантируют, что ваш каталог /tmp будет содержаться в относительной чистоте. Тем не менее, он не является надежным. Если пользователь решит сбросить огромное количество данных в каталог /tmp, это действие может вызвать другие проблемы, например, невозможность войти в систему через SSH.

Поддерживать каталог /tmp нелегко. Пользователи любят сбрасывать файлы в /tmp и оставлять их там на неопределенное время. К счастью, для повторных нарушителей всегда есть возможность заблокировать учетную запись или отправить письмо с резкой формулировкой о потере доступа к системе, пока вопрос не будет решен через менеджера. Такая тактика обычно привлекает внимание пользователя, и дальнейшие нарушения случаются редко.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий