【问题标题】:Why I cannot changing the permission of executing a shellscript even as a root?为什么即使以 root 身份也无法更改执行 shell 脚本的权限?
【发布时间】:2014-01-28 22:41:56
【问题描述】:

我有一个run.sh 文件,我想通过终端执行它

./run.sh

但是,它说

bash: ./run.sh: Permission denied

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

然后我尝试使用

sudo chmod +x run.sh

然后

./run.sh

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

运行它
bash run.sh

它有效。但我真的很想解决这个问题,回到我使用./ 执行shellscript 的习惯。任何人都可以帮忙吗?谢谢。

【问题讨论】:

    标签: shell scripting permissions terminal


    【解决方案1】:

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

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

    bash script.sh

    不需要超级用户权限。 如果你运行为

    bash script.sh

    您需要提供 root 密码才能使用。

    【讨论】:

    • 您的 cmets 似乎自相矛盾:如果您运行 bash script.sh,您不需要超级用户权限,但如果您运行 bash script.sh,您需要提供 root 密码吗?第二个是sudo 还是su
    【解决方案2】:

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

    【讨论】:

    • 是的,它在 Bash 中运行。
    • 你能复制/粘贴你的shebang吗?
    • shebang 是 #!/bin/bash
    猜你喜欢
    • 2011-12-27
    • 2013-06-29
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多