“执行”权限起什么作用?

“执行”权限起什么作用?

令我震惊的是,我仍然不理解 Linux 中的“执行”权限。

权限有三种:读取、写入和执行。我理解读取和写入是字面上的意思,但是执行到底是做什么的呢?

假设我有example.php执行权限。我可以用它做什么example.php

答案1

基本上,这意味着您可以告诉操作系统运行文件中的代码。例如,如果文件是二进制可执行文件,则读取权限允许您查看它,写入权限允许您修改它,但如果没有执行权限,您将无法运行该程序。对于脚本,情况会稍微复杂一些,因为您不一定需要“运行”该程序,您只需将其内容读入解释器即可,解释器本身具有执行权限,但您不需要对脚本本身具有执行权限。

Linux 中的一些脚本本身是可执行的,你经常会在顶部看到一行

#!/bin/bash

或者

#!/bin/python

该行告诉内核可以通过调用相关程序来执行该文件(而不仅仅是文本)。然后你可以像这样运行脚本

./script

而不必做

python ./script

答案2

“execute”允许用户执行可执行文件。对于目录,它允许使用 cd 命令进入目录。

答案3

从实际目的来看,读取权限意味着执行能力。

然而相反的情况并不成立;在授予执行代码的权限而不授予读取代码的权限的情况下,授予执行代码的权限具有一定的价值。

答案4

它用于从 GUI 或命令行运行应用程序。对于“正常”php 使用(通过 web 服务器),这不会改变任何东西。准确地说,这取决于配置,但在大多数情况下,您不需要 +x 权限来允许通过浏览器加载您的 php 网页。

要从命令行运行,您需要:

  • #!/usr/bin/php在脚本开头添加
  • 添加 +x 权限
  • 您的脚本必须位于可执行搜索路径 ($PATH 环境变量) 中,或者您必须在脚本名称前指定其所在的目录。这可以是绝对路径名,例如/etc/xdg/foo/home/fred/bar,也可以是相对目录,例如dir1/prog1./prog2

相关内容