chmod a = rwx后Linux权限被拒绝

时间:2009-04-07 23:12:33

标签: linux permissions shell wrapper permission-denied

所以我有一点Linux问题,geez会教我在Windows上度过这么多年。无论如何,我做了一个小的Java应用程序,很好地包装了Java Service Wrapper脚本,但当我运行该脚本时:

sh ./wrapper.sh console

我立即得到了许可。许可被拒绝的消息是这样的:

eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied

我的小wrapper.sh位于MyApp / bin文件夹中。 目录MyApp / bin / wrapper包含2个文件:

  • 包装-Linux的X86-32
  • 包装-Linux的x86-64的

作为测试,我运行了以下chmod命令:

chmod a=rwx MyApp -R

我验证了所有内容都是rwx,即使在子文件夹中并尝试再次运行脚本,结果完全相同......权限被拒绝。

任何人都知道我可以尝试下一步让宝宝跑步吗?

谢谢, 兰斯洛特

6 个答案:

答案 0 :(得分:8)

我刚注意到错误消息引用了托管文件的目录的名称:

eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied

我们知道这是一个目录,因为你提到“目录MyApp / bin / wrapper包含2个文件”。

您是否可以检查脚本,例如您将目录名称用作命令?比如使用包装器(这是目录名)而不是包装器/ wrapper-linux-x86-32(可能是文件名),还是类似的错误?

在文件名中使用空格并忘记引用所述文件名时经常会出现类似的错误(尽管可能不是这里的情况。)

如果不这样,你能否编辑你的问题以包含你正在调用的包装脚本的内容?

(新答案,因为它与之前的noexec想法完全无关,而且可以留待参考。)

答案 1 :(得分:7)

托管脚本的文件系统可能会使用noexec标志进行挂载。检查该文件系统的/ etc / fstab条目,如果有noexec,请尝试删除它,然后通过mount /path/to/mountpoint -o remount重新安装该文件系统

第二个想法,检查no mount命令的输出是否为noexec实例而不是/ etc / fstab(文件系统可能是动态挂载的。)

答案 2 :(得分:0)

您可能还必须将执行脚本授予您的包装器

chmod + x wrapper.sh

编辑:我刚刚发现你的wrapper.sh位于你的MyApp文件夹中 / EDIT

另外,如果你确定你有

#!/bin/sh

在.sh文件的顶部,您可以像这样执行:

.wrapper.sh

答案 3 :(得分:0)

首先,尝试在文本编辑器中打开它,以确保您具有读取权限。如果是这样,那么

chmod +x wrapper.sh

并确保脚本开头有#!/bin/sh

答案 4 :(得分:0)

您可以尝试执行其他用户主目录中的文件,您可以向用户“user”授予权限

chmod -R a + x / home / user1 要么 chmod -R o + x / home / user1 chmod -R g + x / home / user1

答案 5 :(得分:0)

虽然我的问题有点不同,但在搜索类似问题时我的搜索中出现了这个问题,所以我会在这里发布我的发现。

我的问题是我在chmod命令后无法访问存储/文件夹。

执行命令后:

sudo chmod -755 storage -R    //notice -755 is wrong, it should be 755

我再也无法访问存储/文件夹了。

我试过ls -l

storage permissions d---------

git status之后:

storage/.gitignore: Permission denied

执行正确的命令后:

sudo chmod 755 storage -R // without -

一切恢复正常。