Директории /tmp и /var/tmp должны иметь права chmod 777, поэтому необходимо защитить систему от запуска (выполнения) файлов из этих папок.
Защищаем папки /tmp и /var/tmp от выполнения:
Устанавливаем пакет e4fsprogs если он не устанолен:
yum install e4fsprogs |
Создаем специальную партицию для /tmp с размером 3GB:
dd if=/dev/zero of=/var/tmpFS bs=1024 count=3072000 /sbin/mkfs.ext4 /var/tmpFS |
Делаем бэкап файлов из /tmp:
cp -Rpf /tmp /tmpold |
Монтируем партицию в /tmp:
mount -o loop,noexec,nosuid,rw /var/tmpFS /tmp chmod 1777 /tmp |
Копируем файлы обратно в /tmp:
cp -Rpf /tmpold/* /tmp/ |
Делаем бэкап файла /etc/fstab:
cp /etc/fstab /etc/fstab-back |
Добавляем в файл строку для монтирования /tmp:
echo '/var/tmpFS /tmp ext4 loop,nosuid,noexec,rw 0 0' >> /etc/fstab |
Проверяем:
mount -o remount /tmp df -H |
Вы должны увидеть партицию, выглядит примерно так:
/var/tempFS 3.1G 72M 2.9G 3% /tmp
Защищаем папку /var/tmp:
mv /var/tmp /var/vartmp ln -s /tmp /var/tmp cp /var/vartmp/* /tmp/ |
Ну и неплохо бы просекурить /dev/shm, для этого нужно в /etc/fstab добавить строчку:
none /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0
После чего выполнить команду:
mount -o remount /dev/shm |
После выполнения этих операций, не лишним будет рестартануть сервисы, использующие /tmp, к таким относятся mysql, nginx и т.п.