如何使用 YAML 文件在 Elastic Beanstalk 中设置文件夹权限?
How To Set Folder Permissions in Elastic Beanstalk Using YAML File?
我有一个 C# Web API Elastic Beanstalk 应用程序,它需要部署目录之外的一个文件夹,IUSER 和 IIS_USERS 用户可以写入该文件夹。我创建了一个 .config 文件并将其放在我项目的顶级 .ebextensions 文件夹中。内容如下:
commands:
0_mkdir:
command: mkdir C:\AppFolder\
1_set_iuser_permissions:
command: cacls C:\AppFolder\ /t /e /g IUser:f IIS_Users:f
但是,当文件夹创建成功时,权限未设置。如果有人知道我做错了什么,我将不胜感激。非常感谢。
最后我转而使用 Json 而不是 YAML,因为尽管我的 YAML 已被多个在线 YAML 测试人员验证,但 AWS 仍然不接受它。传递给 icacls 的参数总是有问题。我还更改了应用程序 App_Data 文件夹中的一个文件夹,因为在应用程序外部的任何目录上设置权限似乎不起作用。所以,我最终的配置文件如下:
{
"container_commands": {
"01": {
"command": "icacls \"C:/inetpub/wwwroot/AppName_deploy/App_Data/AppFolder\" /grant DefaultAppPool:(OI)(CI)F"
}
}
}
希望这对其他人有所帮助。
您似乎在使用无效的 .net 帐户(除非这些是您创建的自定义帐户)。这是未设置您的权限的部分原因。它们应该是 IUSR
或 IIS_IUSRS
此外,container_commands
在您的 app/server 环境设置完成后 执行,但在您的部署 之前 开始了。除了在 visual studio.
中使用 wpp.targets 文件外,没有其他方法可以在部署目录中设置对 files/folders 的权限
下面的 SO post 是使用 wpp.targets 解决您的问题的好读物。
Can Web Deploy's setAcl provider be used on a sub-directory?
将文件 01_fix_permissions.config
放入 .ebextensions
文件夹。
内容:
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/49_change_permissions.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
sudo chown -R ec2-user:ec2-user tmp/
我有一个 C# Web API Elastic Beanstalk 应用程序,它需要部署目录之外的一个文件夹,IUSER 和 IIS_USERS 用户可以写入该文件夹。我创建了一个 .config 文件并将其放在我项目的顶级 .ebextensions 文件夹中。内容如下:
commands:
0_mkdir:
command: mkdir C:\AppFolder\
1_set_iuser_permissions:
command: cacls C:\AppFolder\ /t /e /g IUser:f IIS_Users:f
但是,当文件夹创建成功时,权限未设置。如果有人知道我做错了什么,我将不胜感激。非常感谢。
最后我转而使用 Json 而不是 YAML,因为尽管我的 YAML 已被多个在线 YAML 测试人员验证,但 AWS 仍然不接受它。传递给 icacls 的参数总是有问题。我还更改了应用程序 App_Data 文件夹中的一个文件夹,因为在应用程序外部的任何目录上设置权限似乎不起作用。所以,我最终的配置文件如下:
{
"container_commands": {
"01": {
"command": "icacls \"C:/inetpub/wwwroot/AppName_deploy/App_Data/AppFolder\" /grant DefaultAppPool:(OI)(CI)F"
}
}
}
希望这对其他人有所帮助。
您似乎在使用无效的 .net 帐户(除非这些是您创建的自定义帐户)。这是未设置您的权限的部分原因。它们应该是 IUSR
或 IIS_IUSRS
此外,container_commands
在您的 app/server 环境设置完成后 执行,但在您的部署 之前 开始了。除了在 visual studio.
下面的 SO post 是使用 wpp.targets 解决您的问题的好读物。 Can Web Deploy's setAcl provider be used on a sub-directory?
将文件 01_fix_permissions.config
放入 .ebextensions
文件夹。
内容:
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/49_change_permissions.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
sudo chown -R ec2-user:ec2-user tmp/