Windows agent wizard: apply permissions also to Icinga's data dir

refs #7998
This commit is contained in:
Alexander A. Klimov 2020-05-11 14:38:41 +02:00
parent a65f2d6b41
commit 5bb929c2e8

View File

@ -238,14 +238,12 @@ namespace Icinga
string serviceUser = txtUser.Text.Trim();
DirectoryInfo di = new DirectoryInfo(Program.Icinga2InstallDir);
DirectorySecurity ds = di.GetAccessControl();
FileSystemAccessRule rule = new FileSystemAccessRule(serviceUser,
FileSystemRights.Modify,
InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.None, AccessControlType.Allow);
try {
ds.AddAccessRule(rule);
di.SetAccessControl(ds);
AddAccessRuleToDir(rule, Program.Icinga2InstallDir);
AddAccessRuleToDir(rule, Program.Icinga2DataDir);
} catch (System.Security.Principal.IdentityNotMappedException) {
ShowErrorText("Could not set ACLs for user \"" + serviceUser + "\". Identitiy is not mapped.\n");
return;
@ -285,6 +283,14 @@ namespace Icinga
FinishConfigure();
}
private void AddAccessRuleToDir(FileSystemAccessRule rule, string dir)
{
DirectoryInfo di = new DirectoryInfo(dir);
DirectorySecurity ds = di.GetAccessControl();
ds.AddAccessRule(rule);
di.SetAccessControl(ds);
}
private void FinishConfigure()
{
if (InvokeRequired) {