Risposte:
È necessario utilizzare il comando mount (8), disponibile immediatamente su tutti i sistemi Linux e UNIX.
Se si esegue mountsenza argomenti aggiuntivi, elencherà tutte le partizioni attualmente montate sul vostro sistema, tipo di file system e di qualsiasi opzioni, come il montaggio noexec, rwo nosuid.
Per esempio:
% 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)
/proc/mountsin preferenza mount. Se /etc/mtabnon viene aggiornato (ad es. Perché /è di sola lettura), l'output di mountpotrebbe non essere aggiornato. Inoltre, per alcune opzioni (non noexec), mountoffre un output filtrato che può essere fuorviante per alcune combinazioni di versioni del kernel e del mount (ad esempio con le opzioni relative ad atime).
Supponendo che lo stai eseguendo su Linux, sì, va bene. Sarebbe un po 'più robusto verificare che noexecsia tra le virgole o all'inizio o alla fine della sua colonna.
grep -Eq '^[^ ]+ /location [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts
Questo potrebbe essere più chiaro in awk:
awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'