Créer / home / tmp noexec nodev sans patience distincte

J'ai besoin de modifier certaines options de assembly pour des parties du système de files racine, telles que / tmp / var et / home (append nodev, nosuid et quota), mais je n'ai pas la possibilité de faire une partition séparée et je n'ai pas assez de RAM pour mount / tmp comme tmpfs. J'ai essayé mount -o bind, noexec, nodev, nosuid / tmp / tmp, mais cela ne semble pas fonctionner, car après cela, je peux toujours exécuter des files de / tmp et faire un signe de tête sur ce dernier. Est-ce qu'il y a d'autres moyens de le faire?

Vous pouvez remonter / tmp avec bind et noexec, nodev, nosuid options mais pas en une seule étape. En raison de certaines limitations de la couche VFS du kernel linux, vous devez d'abord lisser-monter, puis remonter avec les options appropriées.

root@utemp:/# /tmp/test.sh uid=0(root) gid=0(root) groups=0(root) root@utemp:/# mount -o bind,noexec /tmp /tmp root@utemp:/# ./tmp/test.sh uid=0(root) gid=0(root) groups=0(root) root@utemp:/# umount /tmp root@utemp:/# mount -o bind /tmp /tmp root@utemp:/# mount -o remount,noexec /tmp root@utemp:/# ./tmp/test.sh bash: ./tmp/test.sh: Permission denied root@utemp:/# umount /tmp 

C'est incommode – au lieu d'une ligne dans / etc / fstab, vous devez appeler un script avec deux commands de assembly par directory pendant le démarrage du système.

Plus d'informations dans cet article LWN . Dans le kernel ancien, cela ne fonctionnerait pas – le sharepoint assembly liant a toujours les mêmes options de assembly que le système de files sous-jacent.