所以我有一个小小的Linux问题,geez会教会我在Windows上度过这么多年。 无论如何,我做了一个小的Java应用程序,包装很好的Java服务包装脚本,但是当我运行该脚本:
sh ./wrapper.sh console
我立即获得了权限。 权限被拒绝的消息是这样的:
eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied
我的小wrapper.sh住在MyApp / bin文件夹中。 目录MyApp / bin / wrapper包含2个文件:
作为一个testing,我运行了下面的chmod命令:
chmod a=rwx MyApp -R
我证实,一切都是rwx,即使在子文件夹中,并试图再次运行脚本,完全相同的结果…权限被拒绝。
任何人有任何想法,我可以尝试旁边,使婴儿跑?
谢谢,Lancelot
我只注意到错误消息引用了托管你的文件的目录的名称:
eval: 1: /home/user1/MyApp/bin/wrapper: Permission denied
我们知道这是你提到的“目录MyApp / bin / wrapper包含2个文件”的目录。
你能检查你的脚本,例如你在哪里使用目录的名字作为命令? 比如使用wrapper(这是目录名)而不是wrapper / wrapper-linux-x86-32(这将是一个文件名),或者类似的错误?
当在文件名中使用空格时,经常出现类似的错误,并忘记引用所说的文件名(尽管这里可能不是这种情况)。
如果没有,你可以编辑你的问题,包括你打电话的包装脚本的内容?
(新的答案,因为它是完全无关的前noexec的想法,可以留下供参考。)
托管脚本的文件系统可能会挂载noexec
标志。 检查你的文件系统的/ etc / fstab条目,如果有一个noexec
那里尝试删除它,然后通过mount /path/to/mountpoint -o remount
该文件系统
第二个想法是检查noexec实例的mount
命令的输出,而不是/ etc / fstab(文件系统可能已经动态安装)。
您可能还必须将执行脚本授予包装器
chmod + x wrapper.sh
编辑:我只是注意到,你的wrapper.sh位于你的MyApp文件夹/编辑
另外,如果你确定你有
#!/bin/sh
在.sh文件的顶部,你可以像这样执行它:
.wrapper.sh
首先,尝试在文本编辑器中打开它,以确保您具有读取权限。 如果是这样,那么
chmod +x wrapper.sh
并确保在脚本的开头有#!/bin/sh
您可以尝试执行其他用户的主目录中的文件,您可以授予用户“用户”
chmod -R a + x / home / user1或chmod -R o + x / home / user1 chmod -R g + x / home / user1
虽然我的问题有点不同,但是在寻找类似问题的过程中,这个问题几次出现在我的搜索中,所以我会在这里发表我的发现。
我的问题是,我不能访问chmod命令后的存储/文件夹。
执行命令后:
sudo chmod -755 storage -R //notice -755 is wrong, it should be 755
我无法再访问存储/文件夹。
我试过ls -l
:
在git status
:
执行完正确的命令后:
sudo chmod 755 storage -R // without -
一切都恢复正常。