首页 > 解决方案 > Azure Ubuntu VM - 执行自定义脚本(权限被拒绝)

问题描述

我创建了一个 Azure ARM 模板,它在 Ubuntu 18.04 中使用 Microsoft.Compute/virtualMachines/extensions 来执行自定义脚本。配置机器后,ubuntu 用户(非 root)应该能够从以下目录 /var/lib/waagent/custom-script/download/0 运行自定义脚本,它会收到“权限被拒绝”。我添加了以下几行以确保 ubuntu 用户拥有该文件并且能够执行,但没有成功。

sudo chown ubuntu install_metaport.sh
chmod +x install_metaport.sh
sh install_metaport.sh

然后,我改变了我的方法并将以下内联命令添加到我的 Azure ARM 脚本中,效果很好。但我试图避免复制/移动文件,并从其原始目录执行,即/var/lib/waagent/custom-script/download/0,但同样,我最终得到“权限拒绝”并且无法弄清楚如何解决这个问题

cp install_metaport.sh /tmp && chown ubuntu /tmp/install_metaport.sh && chmod +x /tmp/install_metaport.sh && cd /tmp && sh install_metaport.sh

有什么建议吗?谢谢

标签: linuxazureubuntuubuntu-18.04

解决方案


您的文件install_metaport.sh可以由用户 Ubuntu 执行。您通过放入另一个目录来验证这一点。

该文件可以从另一个目录执行的事实表明权限在较低级别被拒绝。根文件夹权限限制子文件权限,因此很可能您无法在/var/lib/waagent/custom-script/download/0目录中执行。在那里给用户 ubuntu 执行权限,它会像一个魅力一样工作。


推荐阅读