web-dev-qa-db-fra.com

Le paramètre `Taille`` pour TMPFS dans FSTAB ne fonctionne-t-il pas?

Je suis confus que mon/TMP utilisant TMPFS respecte le paramètre size que je lui ai donné dans /etc/fstab:

Mes entrées FSTAB sont maintenant lues:

root_pool/var/tmp  /tmp /var/tmp zfs rw,nodev,nosuid 0 0
tmpfs /tmp tmpfs rw,nodev,nosuid,noexec,nr_inodes=5k,size=2G,mode=1777 0 0
tmpfs /dev/shm tmpfs   defaults,nodev,nosuid,nr_inodes=5k,mode=700,size=4G 0 0

Mais selon Du, il utilise la moitié de ma mémoire (que je comprends est la valeur par défaut) au lieu de la taille que je voulais l'allouer.

 ~ df /tmp
Filesystem     1K-blocks  Used Available Use% Mounted on
tmpfs           65921428     0  65921428   0% /tmp

Donc, le paramètre size n'a-t-il aucun effet? Je travaille avec Ubuntu 20.04

Éditer je peux le monter manuellement avec

Sudo mount -oremount,size=4G /tmp

Quand je fais ça /tmp est le 20.04 Go attendu.

Edit: Systemd Statut:

● tmp.mount - Temporary Directory (/tmp)
     Loaded: loaded (/etc/systemd/system/tmp.mount; enabled; vendor preset: enabled)
     Active: active (mounted) since Wed 2020-06-17 13:30:35 EDT; 8min ago
      Where: /tmp
       What: tmpfs
       Docs: https://systemd.io/TEMPORARY_DIRECTORIES
             man:file-hierarchy(7)
             https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
      Tasks: 0 (limit: 154317)
     Memory: 76.0K
     CGroup: /system.slice/tmp.mount

Jun 17 13:30:35 virtland systemd[1]: Mounting Temporary Directory (/tmp)...
Jun 17 13:30:35 virtland systemd[1]: Mounted Temporary Directory (/tmp).

et journalctl -u tmp.mount

-- Reboot --
Jun 17 13:27:50 virtland systemd[1]: tmp.mount: Directory /tmp to mount over is not empty, mounting an>
Jun 17 13:27:50 virtland systemd[1]: Mounting Temporary Directory (/tmp)...
Jun 17 13:27:50 virtland systemd[1]: Mounted Temporary Directory (/tmp).
Jun 17 13:29:43 virtland systemd[1]: Unmounting Temporary Directory (/tmp)...
Jun 17 13:29:43 virtland systemd[1]: tmp.mount: Succeeded.
Jun 17 13:29:43 virtland systemd[1]: Unmounted Temporary Directory (/tmp).
-- Reboot --
Jun 17 13:30:35 virtland systemd[1]: tmp.mount: Directory /tmp to mount over is not empty, mounting an>
Jun 17 13:30:35 virtland systemd[1]: Mounting Temporary Directory (/tmp)...
Jun 17 13:30:35 virtland systemd[1]: Mounted Temporary Directory (/tmp).

Edit2: Réglage de la taille des TMPFS pour /dev/shm fonctionne comme prévu:

# in fstab
tmpfs /dev/shm tmpfs   defaults,nodev,nosuid,nr_inodes=5k,mode=700,size=4G 0 0
tmpfs                                  13184288       2328   13181960   1% /run
tmpfs                                   4194304      41056    4153248   1% /dev/shm
tmpfs                                      5120          4       5116   1% /run/lock
tmpfs                                  65921432          0   65921432   0% /sys/fs/cgroup
tmpfs                                  65921432          0   65921432   0% /tmp
tmpfs                                  13184284          8   13184276   1% /run/user/1000

En outre, il semble que l'option NOEXEC, bien que recommandée par de nombreux guides de sécurité, est problématique car certains programmes (y compris APT) doivent s'exécuter de/TMP. Je comprends que cela puisse être arrêté, mais je ne veux pas avoir à comprendre tous les programmes qui doivent être une exception.

2
Stonecraft

À Ubuntu 20.04 l'unité tmp.mount vit à l'origine /usr/share/systemd/tmp.mount.

Les modifications effectuées par l'administrateur système (utilisateur) entrent dans /etc/systemd/system/ qui est probablement pourquoi ceux-ci ont une priorité plus élevée.

Je ne sais pas pourquoi votre unité réside dans /etc/systemd/system/.

Je suppose que votre tmp.mount unité en /etc/systemd/system/ interfère avec l'entrée dans FSTAB.

Pour confirmer cette modification de la ligne suivante dans /etc/systemd/system/tmp.mount

Options=mode=1777,strictatime,nosuid,nodev

dans

Options=mode=1777,strictatime,nosuid,nodev,size=YOURSIZE

Pour obtenir le comportement que vous désirez, désactivez et retirez l'unité définie dans /etc/systemd/system/tmp.mount.

2
Oxyra