![无法执行设置了执行权限位的文件](https://linux22.com/image/4578/%E6%97%A0%E6%B3%95%E6%89%A7%E8%A1%8C%E8%AE%BE%E7%BD%AE%E4%BA%86%E6%89%A7%E8%A1%8C%E6%9D%83%E9%99%90%E4%BD%8D%E7%9A%84%E6%96%87%E4%BB%B6.png)
好吧,我对 Linux 还太陌生,但我被一些我应该知道的事情困住了,但我不知道。我的文件具有以下权限位集:
-r-xr-xr-x
属于root
(但没关系,因为-x
即使对任何用户来说都是活动的)它是不可写的,并且由于它驻留在 CDROM 上,即使是作为 CDROM 安装的虚拟 iso 听起来不错,但我无法执行:它说“权限被拒绝”我想念什么? mount本身有执行权限,所以应该执行,为什么不执行呢?
编辑
我解决了这个问题,但不是我的怀疑,因为显式bash ./autorun.sh
工作 - 我root
无论如何都需要一个帐户来了解里面的内容,但它有效。
答案1
最可能的解释是帕特里克的:文件系统是使用该noexec
选项安装的,因此所有文件的执行权限位都将被忽略,并且您无法直接执行驻留在该文件系统上的任何程序。请注意,noexec
mount 选项是由user
in 选项隐含的/etc/fstab
(据说是出于安全原因,尽管与nodev
和nosuid
选项不同,noexec
实际上并不提供任何安全性)。如果您使用user
并希望拥有可执行文件,请使用user,exec
.
也有可能是舍邦脚本的行指向一个存在但不可执行的文件 - 在这种情况下,错误消息令人困惑地引用了脚本即使错误出在解释器上。然而,shebang 不太可能指向错误的现有文件(如果错误是“未找到”,那么悬挂的 shebang 会更合理)。