Comment vérifier si une partition est montée en tant que 'noexec'?

Actuellement, j'utilise grep '\s/location/\s.*noexec' /proc/mounts .
(Est-ce une bonne façon de vérifier cela?)

Vous devez utiliser la command mount (8), qui est disponible immédiatement sur tous les systèmes Linux et UNIX.

Si vous exécutez mount sans aucun argument supplémentaire, il répertorie toutes les partitions actuellement montées sur votre système, le type de système de files et les options de assembly telles que noexec , rw ou nosuid .

Par exemple:

 % mount proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) /dev/sda1 on /boot type ext4 (rw,relatime,data=ordered) /dev/mapper/basement-root on / type ext4 (rw,relatime,data=ordered) 

En supposant que vous exécutez cela sur Linux, oui, c'est bien. Il serait un peu plus robuste de vérifier que noexec est entre les virgules ou au début ou à la fin de sa colonne.

 grep -Eq '^[^ ]+ /location [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts 

Cela pourrait être plus clair dans awk:

 awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'