令我震惊的是,我仍然不理解 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
。