パーティションが「noexec」としてマウントされているかどうかを確認する方法は?


14

現在、私はを使用していgrep '\s/location/\s.*noexec' /proc/mountsます。
(これを確認する正しい方法ですか?)


1
Linuxの新しいバージョンでのみ作業する必要がある限り、それは問題ありません。
ヨルダン

1
この Q / Aを確認
-dawud

回答:


13

すべてのLinuxおよびUNIXシステムですぐに使用できるmount(8)コマンドを使用する必要があります。

あなたが実行している場合はmount、追加の引数を指定せず、それはのような、すべての現在システムにパーティションをマウントされ、ファイルシステムの種類及び任意のマウントオプションの一覧が表示されますnoexecrwまたは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)

5
Linuxでは、を/proc/mounts優先して使用することをお勧めしmountます。/etc/mtabが更新されていない場合(/読み取り専用など)、の出力はmount最新ではない可能性があります。また、一部のオプション(ではないnoexecmountに対して、カーネルとマウントのバージョンのいくつかの組み合わせ(atime関連オプションなど)で誤解を招く可能性があるフィルター出力を提供します。
ジル 'SO-悪であるのをやめる'

ファイルまたはディレクトリがマウントされているパーティションを見つけるには-df -P file / goes / here | テール-1 | cut -d '' -f 1
brainLoop

4

Linuxでこれを実行していると仮定すると、はい、これで問題ありません。noexecカンマの間、または列の先頭または末尾にあることを確認する方が、もう少し堅牢です。

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

これはawkでより明確になるかもしれません:

awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.