网站搜索

修复在 Linux 上运行 Bash 脚本时的“权限被拒绝”错误


这个快速教程可帮助您修复在 Ubuntu 和其他 Linux 发行版中运行 bash 脚本时出现的“权限被拒绝”错误。

对于 Linux 中的新用户来说,尝试运行任何 bash 脚本 (.sh) 时遇到“权限被拒绝”错误可能会让人不知所措。这份综合指南将帮助您立即解决该问题。

在 Linux 中执行 bash 脚本时出现权限被拒绝错误

“权限被拒绝”错误主要是由于访问而发生的。您的脚本缺乏执行某些操作所需的权限,无论是读取文件、写入数据还是与系统资源交互。例如,以下是一些原因:

  • 缺少执行权限:脚本本身可能没有必要的“执行”权限。
  • 文件位置不正确:尝试从无权执行文件的目录运行脚本也会触发错误。
  • 缺少依赖项:某些脚本依赖于外部程序或库。如果这些丢失或无法访问,您可能会收到此错误。
  • SELinux 限制(高级):安全增强型 Linux (SELinux) 添加了额外的安全层,有时可能会阻止脚本执行。

通过分配权限修复“权限被拒绝”错误

  • 使用ls -l 查看脚本的权限。在第三组字符中查找“x”(所有者权限)。如果它丢失了,那就是你的罪魁祸首!
  • 使用 chmod +x your_script.sh 为所有者添加“x”权限(将“your_script.sh”替换为实际文件名)。
  • 对于大多数情况,这应该是固定的。如果没有,请查看下面的附加步骤。

设置执行权限以修复错误

修复的附加步骤

  • 确保您从具有执行权限的目录执行脚本。使用 pwd 查看您当前的位置。
  • 在运行脚本之前导航到具有执行权限的目录。使用 cd /path/to/directory 切换目录。
  • 如果 SELinux 是问题所在,请参阅其文档以了解具体的政策调整。这就像与看门人谈判以获得进入权。

结束语

我希望您在执行上述故障排除步骤后能够修复该错误。以下是这方面的一些参考资料,供您参考:

  • 管理 SELinux:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/index
  • Bash 脚本故障排除:https://www.gnu.org/software/bash/manual/