权限为“x”时无法执行脚本

Hen*_*nry 20 linux bash shell

但是,鉴于以下情况,我在当前目录中有一个脚本:

  1. 权限是 -rwxr-xr-x
  2. 该脚本#!/bin/bash在文件顶部有一个shebang
  3. 我的壳是 /bin/bash
  4. 我可以使用执行它 bash script.sh

我无法使用./script.sh. 它给了我:

bash: ./script.sh: 权限被拒绝

为什么会发生这种情况,解决方案是什么?

use*_*686 22

  • 不允许执行,因为该文件位于使用“noexec”选项挂载的文件系统上。使用findmnt -u -T .以找出是否是这种情况。如果你有 root 权限,mount -o remount,exec <dir>应该去掉这个选项。

  • MAC策略(SELinux、SMACK,可能是 AppArmor)不允许执行。检查系统日志,从journalctl -n 100和开始dmesg。绕过这个(如果你是管理员)取决于实际使用的 MAC 系统。

  • 因为你有 `user` 选项。 (6认同)
  • 谢谢,就我而言,它是 `noexec`。我很困惑,我在`/etc/fstab` 中将此磁盘挂载为`/home ext4 auto,exec,rw,async,user 0 2`,为什么是`noexec`? (3认同)
  • 强制访问控制 (3认同)