Antworten:
Sie sollten den Befehl mount (8) verwenden, der auf allen Linux- und UNIX-Systemen sofort verfügbar ist.
Wenn Sie mountohne zusätzliche Argumente ausführen , werden alle derzeit auf Ihrem System gemounteten Partitionen, der Dateisystemtyp und etwaige Mount-Optionen aufgelistet, znoexec , rwoder nosuid.
Z.B:
% 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/mountsvorzuziehen mount. Wird /etc/mtabes nicht aktualisiert (z. B. weil /es schreibgeschützt ist), ist die Ausgabe von mountmöglicherweise nicht aktuell. Außerdem erhalten Sie für einige Optionen (nicht noexec) mounteine gefilterte Ausgabe, die für einige Kombinationen von Kernel- und Mount-Versionen irreführend sein kann (z. B. mit den atime-bezogenen Optionen).
Vorausgesetzt, dass Sie dies unter Linux ausführen, ist dies in Ordnung. Es wäre etwas robuster zu überprüfen, ob noexeces sich zwischen Kommas oder am Anfang oder Ende der Spalte befindet.
grep -Eq '^[^ ]+ /location [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts
Dies könnte in awk klarer sein:
awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'