终端错误:zsh:权限被拒绝:./startup.sh

问题描述 投票:0回答:9

我正在运行命令

./startup.sh nginx:start

我收到此错误消息

zsh: permission denied: ./startup.sh

为什么会发生这种情况?

macos nginx terminal sh
9个回答
240
投票

一定要给它执行权限。

cd ~/the/script/folder

chmod +x ./startup.sh

这将为用户、组和其他人授予执行权限,因此请注意可能的安全问题。要将权限限制为单个访问类别,您可以使用:

chmod u+x ./startup.sh

这将仅向用户授予执行权限

供参考


40
投票

您也可以使用 bash:

bash startup.sh

那么就不需要执行权限了。

在 MacOS Catalina 中,Apple 已将 bash 替换为 zsh 作为默认 shell。这可能意味着,他们打算在将来删除 bash,所以这可能不是以后的选择,但对于 Catalina,它仍然有效。


7
投票

从 macOS Catalina 开始, 您的 Mac 使用 zsh 作为默认登录 shell 和交互式 shell。您也可以将 zsh 设置为早期版本 macOS 中的默认值。

如何更改默认外壳 无论您的用户帐户配置为使用 zsh(推荐)、bash 还是其他 shell,您都可以从“用户和组”首选项或命令行更改默认 shell。

  1. 来自用户和组首选项
  2. 选择苹果菜单  >“系统偏好设置”,然后点按“用户与组”。
  3. 点击锁形图标,然后输入您的帐户名和密码。
  4. 按住 Control 键点按左侧用户列表中的用户名,然后选取“高级选项”。
  5. 从“登录 shell”菜单中选择一个 shell,然后单击“确定”保存更改。

点击链接了解更多详情 - https://support.apple.com/en-in/HT208050


3
投票

您需要授予您的文件执行权限。这是一种方法。
导航到包含您的文件的文件夹并运行此命令-

chmod 755 <filename>

数字 755 的三位数字代表三类用户的权限:所有者、组和其他用户。

所以,755代表-

数字(八进制) 二进制 阅读 可执行文件 对于
7 111 1 1 1 楼主
5 101 1 0 1
5 101 1 0 1 其他

因此,此命令向所有者授予所有三种权限 - 读取、写入和可执行,而仅向组和其他人授予读取和可执行权限。

有关 MacOS/Linux 中权限的更多详细信息,请参阅此处 - https://askubuntu.com/questions/932713/what-is-the-difference- Between-chmod-x-and-chmod-755


0
投票

另一个烦人的错误可能是 sh 脚本中的拼写错误。

在下面的示例中,ZSH 错误消息确实令人困惑。 ZSH 确实告诉你

zsh: permission denied: startup.sh
。但您拥有脚本的访问权限。问题是脚本中的 Shebang 行无效:

#!/usr/local/bin sh

右侧的 Shebang 线可以是:

#!/usr/bin/env sh

0
投票

以下对我有用,但我不知道为什么。

在进行以下更改之前我的文件权限是

-rwxr-xr-x
。即使我有执行权限,但我仍然收到权限被拒绝的错误。

我正在使用 vs 代码编辑器。我执行了

chmod +x filename
,文件权限仍然保持不变。这次唯一的区别是我能够运行该文件。文件发生了一些变化,但不可见。我之所以说它不可见,是因为在编辑器的源代码管理选项卡中,我的新文件和旧文件看起来 100% 相同。如果我隐藏更改并执行该文件,则会再次出现同样的错误。

我不知道为什么以及如何运作,但值得一试。

如果有人可以向我解释为什么它不能早点工作,因为我拥有相同的权限,我会非常高兴?另外,我的文件中发生了哪些我看不到的更改?


0
投票

这是由于权限问题。该文件可能由其他用户拥有,或者您没有执行该文件的权限。

要解决该错误,您可以更改文件的所有权(可选)和权限:

  • 更改文件的所有权:

sudo chown $USERstartup.sh

  • 更改文件的权限:

sudo chmod +xstartup.sh


-1
投票

在命令开始之前添加

sudo
,将节省您的时间

sudo anyTemninalCommand

-1
投票

在进入终端中的任何目录之前请使用“cd”

© www.soinside.com 2019 - 2024. All rights reserved.