1 votes

Comment attribuer des permissions d'ECRITURE à IIS_IUSRS sur un dossier dans un conteneur Docker basé sur Windows

Je lance un conteneur Docker basé sur l'image de base Windows Server 2019 suivante :

mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019

Ce conteneur exécute une application ASP.Net 4.8 et écrit dans le dossier logs. Voici le chemin complet :

C:\inetpub\wwwroot\logs

Mon application est présente à la racine du dossier wwwroot. J'essaie de donner l'autorisation Write à l'utilisateur IIS_IUSRS sur le dossier logs mais je reçois l'erreur suivante :

Exception calling "SetAccessRule" with "1" argument(s): "This access control list is not in canonical form and therefore cannot be modified.

Voici mon code PowerShell :

$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("IIS_IUSRS", "Write", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl = Get-ACL "C:\inetpub\wwwroot\Logs"
$acl.AddAccessRule($accessRule)
Set-ACL -Path "C:\inetpub\wwwroot\Logs" -ACLObject $acl

L'erreur se produit à la ligne 3 ci-dessus où elle appelle AddAccessRule.

Comment puis-je résoudre ce problème ?

1voto

Shu Hikari Points 131

Pas besoin de PowerShell. Utilisez la commande suivante pour définir l'autorisation WRITE pour IIS_IUSRS

icacls C:\inetpub\wwwroot\logs /grant IIS_IUSRS:W /t /c

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X