为什么我不能更改执行shell脚本的权限,即使是root用户呢?

时间:2014-01-10 04:24:30

标签: shell scripting permissions terminal

我有一个run.sh文件,我想通过

从终端执行它
./run.sh

然而,它说

bash: ./run.sh: Permission denied

然后我尝试更改执行它的权限。我打开该文件的属性,然后转到权限选项卡,我检查了“Allow executing file as program”。复选标记消失了!它使我的支票无效......

然后我尝试使用

sudo chmod +x run.sh

然后

./run.sh

然后发生了同样的许可问题...... 但是,如果我用

运行它
bash run.sh

它有效。但我真的想解决这个问题并回到习惯使用./来执行shellcript。有人可以帮忙吗?感谢。

2 个答案:

答案 0 :(得分:1)

你的脚本run.sh是否有一个shebang(以#!开头的脚本的第一行)?

答案 1 :(得分:1)

首先,这不是关于类型的权限,而是关于用户特定权限。

一种可能的解释是您的bash进程可能在root所有者下运行。因此,您运行的所有应用程序

bash script.sh

不需要超级用户权限。 如果您以

运行
bash script.sh

您需要提供root密码才能正常工作。