为什么在 Unix 文件系统上的文件模式中需要一个“执行”位?

woo*_*ngs 7 linux unix filesystems

当我得到一个具有只读权限(读取并执行到 root)的可执行文件时,我总是可以将它复制到我拥有完全控制权限的主目录中。然后我将新文件设置为读取和执行。好的,我可以执行它。

文件模式真的有必要吗?我知道对于目录,这意味着不同。

pau*_*sm4 11

因为 *nix 的脑损伤不足以使文件“二进制可执行文件”(如果您碰巧将其命名为“.exe”)或“脚本可执行文件”(如果您碰巧将其命名为“.bat”)。

在 Linux 中,文件名无关紧要。

你给文件的权限重要。

哪一种是有道理的。恕我直言...

  • 你也可以反其道而行之,Unix 允许你在没有任何视觉提示的情况下设置文件可执行文件。无论如何,最近的一切都适用于 ACL。 (7认同)

fla*_*006 5

我很惊讶没有人提到以特殊权限运行的二进制文件。Wireshark 在这里提供了一个真实的用例:它的主要功能之一是捕获网络流量,这通常只有 root 才能做到。您可能希望允许某些用户使用 Wireshark 捕获流量而不必授予他们完全的 root 访问权限是有道理的,因此 Wireshark 附带了一个名为的二进制文件,该二进制文件dumpcap启用了必要的功能(CAP_NET_RAW 和 CAP_NET_ADMIN)。这个二进制是 0754 (rwxr-xr--) 及其关联的 GID 是 Wireshark 安装的特殊组。这样,组中的任何用户都可以运行二进制文件(通常通过 Wireshark)来捕获流量,并且它将以必要的权限运行,但不在该组中的用户将无法这样做,因为他们不会没有执行权限。他们仍然可以将它复制到他们的主目录,但是他们的副本没有设置必要的功能,因此它实际上无法捕获任何流量。