如何检查分区是否挂载为“noexec”?

use*_*ser 15 mount

目前,我正在使用grep '\s/location/\s.*noexec' /proc/mounts.
(这是检查这个的正确方法吗?)

小智 13

您应该使用 mount(8) 命令,该命令在所有 Linux 和 UNIX 系统上都是开箱即用的。

如果运行mount不带任何附加参数,它会列出所有目前安装在您的系统分区,文件系统类型和任何安装选项,例如noexecrwnosuid

例如:

% 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)
Run Code Online (Sandbox Code Playgroud)

  • 在 Linux 上,我推荐使用 `/proc/mounts` 而不是 `mount`。如果`/etc/mtab` 没有更新(例如因为`/` 是只读的),`mount` 的输出可能不是最新的。此外,对于某些选项(不是 `noexec`),`mount` 会为您提供过滤输出,这些输出可能会误导某些内核和安装版本的组合(例如,使用与 atime 相关的选项)。 (5认同)