1
0
mirror of https://github.com/bitwarden/directory-connector synced 2025-12-13 14:53:16 +00:00

permission rules

This commit is contained in:
Kyle Spearrin
2017-08-28 17:05:38 -04:00
parent 41d0b53898
commit 2fa1b52a36

View File

@@ -47,27 +47,26 @@ namespace Service
} }
var sec = info.GetAccessControl(); var sec = info.GetAccessControl();
AddPermission(new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null), sec);
var adminRule = new FileSystemAccessRule( AddPermission(new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null), sec);
new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null), AddPermission(new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null), sec);
FileSystemRights.FullControl | FileSystemRights.Write | FileSystemRights.Read, AddPermission(new SecurityIdentifier(WellKnownSidType.CreatorOwnerSid, null), sec);
InheritanceFlags.None, AddPermission(WindowsIdentity.GetCurrent().User, sec);
PropagationFlags.NoPropagateInherit,
AccessControlType.Allow);
sec.AddAccessRule(adminRule);
var usersRule = new FileSystemAccessRule(
new SecurityIdentifier(WellKnownSidType.BuiltinUsersSid, null),
FileSystemRights.FullControl | FileSystemRights.Write | FileSystemRights.Read,
InheritanceFlags.None,
PropagationFlags.NoPropagateInherit,
AccessControlType.Allow);
sec.AddAccessRule(usersRule);
sec.SetAccessRuleProtection(isProtected: true, preserveInheritance: false); sec.SetAccessRuleProtection(isProtected: true, preserveInheritance: false);
info.SetAccessControl(sec); info.SetAccessControl(sec);
} }
private void AddPermission(IdentityReference sid, DirectorySecurity sec)
{
var rule = new FileSystemAccessRule(
sid,
FileSystemRights.FullControl | FileSystemRights.Write | FileSystemRights.Read,
InheritanceFlags.None,
PropagationFlags.NoPropagateInherit,
AccessControlType.Allow);
sec.AddAccessRule(rule);
}
private void BeforeInstalled(object sender, InstallEventArgs e) private void BeforeInstalled(object sender, InstallEventArgs e)
{ {
if(EventLog.SourceExists(_serviceInstaller.ServiceName)) if(EventLog.SourceExists(_serviceInstaller.ServiceName))