Во избежание переполнения файловой системы в Linux директории, к которым у многих пользователей, в том числе у внешних, есть доступ, рекомендуется создавать на отдельных разделах.
Это /tmp, /var, /var/log, /var/log/audit и /home.
Это легко сделать при установке новой системы и рекомендуется делать всегда.
Ну а при потребности избежать риска переполнения на уже работающей системе можно переразбить разделы и выделить новый для опасной директории.
После этого полезно добавить опции монтирования, ограничивающие опасный функционал у пользовательских файлов.
Опции монтирования задаются в 4 столбце в файле /etc/fstab.
Для /tmp рекомендуются опции nodev (запрещает создавать в файловой системе файлы устройств), noexec (запрещает запускать исполняемые файлы) и nosuid (запрещает создавать файлы с SUID/SGID битами):
grep “[[:space:]]/tmp[[:space:]]” /etc/fstab | grep nodev | grep ^[^#] || sed -i ‘s”^(.*s/tmps+w+s+[a-zA-Z0-9,]+)(s.*)$”1,nodev2″g’ /etc/fstab
grep “[[:space:]]/tmp[[:space:]]” /etc/fstab | grep nosuid | grep ^[^#] || sed -i ‘s”^(.*s/tmps+w+s+[a-zA-Z0-9,]+)(s.*)$”1,nosuid2″g’ /etc/fstab
grep “[[:space:]]/tmp[[:space:]]” /etc/fstab | grep noexec | grep ^[^#] || sed -i ‘s”^(.*s/tmps+w+s+[a-zA-Z0-9,]+)(s.*)$”1,noexec2″g’ /etc/fstab
mount -o remount,noexec,nodev,nosuid /tmp
В точках монтирования /var/log и /var/log/audit хранятся журналы регистрации событий и им тоже не помешают опции nodev, noexec и nosuid:
grep “[[:space:]]/var/log[[:space:]]” /etc/fstab | grep nodev | grep ^[^#] || sed -i ‘s”^(.*s/var/logs+w+s+[a-zA-Z0-9,]+)(s.*)$”1,nodev2″g’ /etc/fstab
grep “[[:space:]]/var/log[[:space:]]” /etc/fstab | grep nosuid | grep ^[^#] || sed -i ‘s”^(.*s/tmps+w+s+[a-zA-Z0-9,]+)(s.*)$”1,nosuid2″g’ /etc/fstab
grep “[[:space:]]/var/log[[:space:]]” /etc/fstab | grep noexec | grep ^[^#] || sed -i ‘s”^(.*s/var/logs+w+s+[a-zA-Z0-9,]+)(s.*)$”1,noexec2″g’ /etc/fstab
mount -o remount,noexec,nodev,nosuid /var/log
grep “[[:space:]]/var/log/audit[[:space:]]” /etc/fstab | grep nodev | grep ^[^#] || sed -i ‘s”^(.*s/var/log/audits+w+s+[a-zA-Z0-9,]+)(s.*)$”1,nodev2″g’ /etc/fstab
grep “[[:space:]]/var/log/audit[[:space:]]” /etc/fstab | grep nosuid | grep ^[^#] || sed -i ‘s”^(.*s/var/log/audits+w+s+[a-zA-Z0-9,]+)(s.*)$”1,nosuid2″g’ /etc/fstab
grep “[[:space:]]/var/log/audit[[:space:]]” /etc/fstab | grep noexec | grep ^[^#] || sed -i ‘s”^(.*s/var/log/audits+w+s+[a-zA-Z0-9,]+)(s.*)$”1,noexec2″g’ /etc/fstab
mount -o remount,noexec,nodev,nosuid /var/log/audit
Для /home рекомендуется опция nodev:
grep “[[:space:]]/home[[:space:]]” /etc/fstab | grep nodev | grep ^[^#] || sed -i ‘s”^(.*s/homes+w+s+[a-zA-Z0-9,]+)(s.*)$”1,nodev2″g’ /etc/fstab
mount -o remount,nodev /home