linux - 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
有什么建议吗?谢谢
解决方案
您的文件install_metaport.sh
可以由用户 Ubuntu 执行。您通过放入另一个目录来验证这一点。
该文件可以从另一个目录执行的事实表明权限在较低级别被拒绝。根文件夹权限限制子文件权限,因此很可能您无法在/var/lib/waagent/custom-script/download/0
目录中执行。在那里给用户 ubuntu 执行权限,它会像一个魅力一样工作。
推荐阅读
- javascript - 我有一个代表数组的字符串。如何推送保持格式的元素?
- excel - 提取或选择单元格的前两个数字
- android - Recyclerview 在列表中的每个项目上添加相同的项目
- laravel - 如何将来自另一个插件的组件添加到呈现的部分
- reactjs - 自定义挂钩 - 基于 API 调用设置值
- excel - 在所有工作簿的行中查找最高数字
- amazon-web-services - Amazon EC2 Windows 实例生成密码大约需要 4 分钟,如何立即获取密码?
- mysql - 连接+分组依据+排序依据+选择示例代码的SQL索引优化
- excel - 更改数据透视表的数据源
- excel - 尝试通过 Python 转换为 PDF 时 Excel 显示错误