Je vois ces deux options constamment suggérées sur le Web lorsque quelqu'un décrit comment monter un tmpfs ou des ramfs. Souvent aussi avec noexec mais je suis spécifiquement intéressé par nodev et nosuid. Je déteste simplement répéter aveuglément ce que quelqu'un a suggéré, sans vraiment comprendre. Et comme je ne vois que des instructions de copier/coller sur le net à ce sujet, je demande ici.
Cela provient de la documentation:
nodev - Ne pas interpréter les périphériques spéciaux bloqués sur le système de fichiers.
nosuid - Bloque le fonctionnement des bits suid et sgid.
Mais je voudrais une explication pratique de ce qui pourrait arriver si je les laisse de côté. Disons que j'ai configuré tmpfs ou ramfs (sans ces deux options mentionnées) qui est accessible (lecture + écriture) par un utilisateur spécifique (non root) sur le système. Que peut faire cet utilisateur pour endommager le système? Hors cas de consommation de toute la mémoire système disponible en cas de ramfs
Vous n'avez pas à suivre cela aveuglément en règle générale. Mais le raisonnement pour des situations plus axées sur la sécurité est le suivant.
L'option de montage nodev spécifie que le système de fichiers ne peut pas contenir de périphériques spéciaux: c'est une précaution de sécurité. Vous ne voulez pas qu'un système de fichiers accessible à l'utilisateur comme celui-ci ait le potentiel de créer périphériques de caractères ou d'accéder à du matériel de périphérique aléatoire.
L'option de montage nosuid spécifie que le système de fichiers ne peut pas contenir de fichiers userid définis. Empêcher les binaires setuid sur un système de fichiers accessible en écriture est logique car il y a un risque d'escalade de racine ou d'autres horreurs.
Pour ce que ça vaut, je n'utilise pas ces paramètres souvent ... uniquement sur les systèmes accessibles au public où il existe d'autres considérations de conformité.