尝试运行时 Bash 脚本权限被拒绝

尝试运行时 Bash 脚本权限被拒绝

我无法运行我的 Bash 脚本,执行权限总是被拒绝。

我使用命令修改了我的文件,例如:

chmod u+x bash_script1.sh 

并得到以下结果:

-rwxr--r-- 1 user group 1947 Jun 18 16:04 bash_script1.sh
-rwxr--r-- 1 user group 2430 Jun 18 15:59 bash_script2.sh
-rw-r--r-- 1 user group    1 Jun 18 10:57 runs.txt

但是,从命令行运行时仍然出现以下错误:

命令:

./bash_script1.sh

错误:

-sh: ./bash_script1.sh: Permission denied

当我运行下面的命令时,我没有收到错误,但我不想使用 bash 来运行我的脚本:

bash bash_script1.sh

#!/usr/bin/env bash放在我的标题下。

答案1

从 的输出中我们可以看到findmnt -T .,存储脚本的文件系统使用 选项挂载noexec。这可以防止脚本(以及二进制可执行文件)直接执行,而bash bash_script1.sh仍然有效,因为bash可执行文件存储在其他地方,只需要剧本。

要暂时修改行为,您可以使用以下mount命令:

sudo mount -o remount,exec /home

为了使更改持久,您需要修改文件/etc/fstab并删除noexec此块设备的挂载选项。

相关内容