回答:
すべてのLinuxおよびUNIXシステムですぐに使用できるmount(8)コマンドを使用する必要があります。
あなたが実行している場合はmount
、追加の引数を指定せず、それはのような、すべての現在システムにパーティションをマウントされ、ファイルシステムの種類及び任意のマウントオプションの一覧が表示されますnoexec
、rw
またはnosuid
。
例えば:
% 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/mounts
優先して使用することをお勧めしmount
ます。/etc/mtab
が更新されていない場合(/
読み取り専用など)、の出力はmount
最新ではない可能性があります。また、一部のオプション(ではないnoexec
)mount
に対して、カーネルとマウントのバージョンのいくつかの組み合わせ(atime関連オプションなど)で誤解を招く可能性があるフィルター出力を提供します。
Linuxでこれを実行していると仮定すると、はい、これで問題ありません。noexec
カンマの間、または列の先頭または末尾にあることを確認する方が、もう少し堅牢です。
grep -Eq '^[^ ]+ /location [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts
これはawkでより明確になるかもしれません:
awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'