nginx 终端错误:zsh:permission denied:./startup.sh

2skhul33  于 2023-06-05  发布在  Nginx
关注(0)|答案(8)|浏览(719)

我正在执行一个命令

./startup.sh nginx:start

我收到了这个错误信息

zsh: permission denied: ./startup.sh

为什么会发生这种事

llmtgqce

llmtgqce1#

一定要给予它执行权限。

cd ~/the/script/folder

chmod +x ./startup.sh

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

chmod u+x ./startup.sh

这将只向用户授予exec权限
For reference

t3psigkw

t3psigkw2#

你也可以使用bash:

bash startup.sh

那你不需要执行许可。
在MacOS Catalina 中,苹果已经将bash替换为zsh作为默认shell。这可能意味着,他们打算在未来删除bash,所以这可能不是一个选择,但与 Catalina 它仍然有效。

s1ag04yj

s1ag04yj3#

**从macOS Catalina **开始,您的Mac使用zsh作为默认登录shell和交互式shell。您也可以在早期版本的macOS中将zsh设置为默认值。
如何更改您的默认shell无论您的用户帐户是配置为使用zsh(推荐)、bash还是其他shell,您都可以从用户和组首选项或命令行更改默认shell。

1.从用户和组首选项
1.选取Apple菜单>“系统偏好设置”,然后点按“用户与组”。
1.单击锁,然后输入您的帐户名和密码。
1.按住Control键点按左侧用户列表中的用户名,然后选取“高级选项”。
1.从“登录shell”菜单中选择一个shell,然后单击确定保存更改。
点击链接了解更多详情-https://support.apple.com/en-in/HT208050

du7egjpx

du7egjpx4#

您需要授予文件执行权限。有个办法
导航到包含您的文件的文件夹并运行此命令-

chmod 755 <filename>

数字755的三个数字表示三种类型的用户的权限-所有者、组和其他。
所以,755代表-
| 数字(八进制)|二进制|读|写|可执行的|为|
| - -----|- -----|- -----|- -----|- -----|- -----|
| 七个|一百一十一|1| 1| 1|业主|
| 5个|一百零一|1| 0| 1|群|
| 5个|一百零一|1| 0| 1|其他|
因此,此命令将所有三个权限-读取,写入和可执行权限授予所有者,而仅读取和可执行权限授予组和其他人。
有关MacOS/Linux中权限的更多详细信息,请参见此处-https://askubuntu.com/questions/932713/what-is-the-difference-between-chmod-x-and-chmod-755

xxb16uws

xxb16uws5#

另一个恼人的错误可能是sh脚本中的n个拼写错误。
在下面的示例中,ZSH错误消息确实令人困惑。ZSH确实告诉你zsh: permission denied: startup.sh。但您有脚本的访问权限。问题是脚本中的Shebang行无效:

#!/usr/local/bin sh

右Shebang线可以是例如:

#!/usr/bin/env sh
wyyhbhjk

wyyhbhjk6#

下面的工作对我来说,但我不知道为什么。
在进行以下更改之前,我的文件权限是-rwxr-xr-x。即使我有执行权限,但我仍然得到了权限拒绝错误。
我用的是VS代码编辑器。我执行了chmod +x filename,文件权限仍然保持不变。这次唯一的区别是我能够运行文件。文件发生了更改,但不可见。我说它不可见的原因是,在我的编辑器的源代码控制选项卡中,我的新文件和旧文件看起来100%相同。如果我隐藏我的更改并执行该文件,则再次出现相同的错误。
我不知道为什么以及如何工作,但值得一试。
如果有人能向我解释为什么它没有工作的原因,我会非常高兴,因为我有相同的权限?另外,什么改变了我的文件,这是不可见的我?

kpbwa7wx

kpbwa7wx7#

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

a1o7rhls

a1o7rhls8#

在命令开始前添加sudo,将保存您的时间,如

sudo anyTemninalCommand

相关问题