1. Überprüfen, ob es bereits ein TMP Verzeichnis existiert.
# mount | egrep --color -w '^(tmpfs|/tmp)|/tmp'
Output könnte ähnlich sein wie: "/filesystems/tmp_fs on /tmp type ext3 (rw,nosuid,noexec,relatime,data=ordered)"
Falls dem nicht so ist und es kein /tmp gibt, gerne fortfahren:
2. Eine etwa 4 GB große Partition erstellen:
# mkdir /filesystems
# dd if=/dev/zero of=/filesystems/tmp_fs seek=2048 count=2048 bs=1M
# mkfs.ext3 /filesystems/tmp_fs
3. Folgende Zeile zu "/etc/fstab" hinzufügen, sodass unsere Partition beim Neustart ebenfalls gemounted wird:
# nano /etc/fstab
Folgendes einfügen:
/filesystems/tmp_fs /tmp ext3 noexec,nosuid,loop 0 0
(nach letzte Zeile)
4. Jetzt das tmp Verzeichnis sichern:
# cd /
# cp -R /tmp /tmp_backup
5. Jetzt noch das neue tmp Verzeichnis mit noexec, nosuis, rw Optionen mounten und die richtigen Rechte setzen:
# mount -o loop,noexec,nosuid,rw /filesystems/tmp_fs /tmp
# chmod 1777 /tmp
6. Alten Dateien von dem TMP Backup wiederherstellen und aufräumen:
# cp -R /tmp_backup/* /tmp/
# rm -rf /tmp_backup
(Hier nochmal die Kommandoabfolge)
7. Testen ob nun eine tmp Partition existiert:
# df -h
# mount
8. Testen ob ein script im tmp Verzeichnis ausgeführt werden kann:
Folgendes einfügen:
# cp /bin/ls /tmp
# chmod 755 /tmp/ls
Test durchführen (Sollte "Permission denied" ausgeben):
# /tmp/ls
Aufräumen:
# rm /tmp/ls
Sonstiges:
Getestet auf Debian 8.8, Ubuntu 14
Quellen: https://docs.plesk.com/en-US/12.5/advanced-administration-guide-linux/enhancing-security.68755/#o68759