NSIS AccessControl plugin
From https://nsis.sourceforge.io/License:
All NSIS source code, plug-ins, documentation, examples, header files and graphics, with the exception of the compression modules and where otherwise noted, are licensed under the zlib/libpng license.
The plugin itself has no copyright notices. Only this from Docs/AccessControl/AccessControl.txt:
ACCESS CONTROL PLUGIN
---------------------
Written by Mathias Hasselmann <mathias@taschenorakel.de>
Modifications by:
* Afrow UK <afrowuk@afrowsoft.co.uk>
* AndersK <anders_k@users.sf.net>
The AccessControl plugin for NSIS provides a set of functions related
Windows NT access control list (ACL) management.
MODIFICATIONS
-------------
v1.0.8.3 - 24th February 2021 - AndersK
* Added /SID switch
v1.0.8.2 - 20th February 2021 - AndersK
* Fixed GetRegKeyOwner
v1.0.8.1 - 7th July 2014 - AndersK
* Don't require SE_RESTORE_NAME and SE_TAKE_OWNERSHIP_NAME when changing owner.
* Fixed broken return value when trustee parsing failed
v1.0.8.0 - 24th March 2014 - AndersK
* Added basic String SID parsing in the emulated ConvertStringSidToSid (Broken in v1.0.6)
* Fixed WinNT4 and Win95 support? (Unicode DLL will not load on Win95 but will probably load on Win98)
* Fixed leaks from ParseSid and ConvertSidToStringSid
* NameToSid and SidToName now pushes "error" and error details
* Better GetCurrentUserName error handling (Still returns the problematic "error" string)
v1.0.7.0 - 25th February 2012 - Afrow UK
* Fixed DisableFileInheritance (broken in v1.0.5.0).
v1.0.6.0 - 26th January 2012 - Afrow UK
* Wrote replacements for ConvertSidToStringSid/ConvertStringSidToSid for
backwards compatibility with Windows NT4/ME (ANSI build only).
* Loads RegSetKeySecurity/RegGetKeySecurity functions at run-time for
backwards compatibility with Windows NT4/ME (ANSI build only).
* Removed commented out legacy code.
v1.0.5.0 - 25th January 2012 - Afrow UK
* Removed IsUserTheAdministrator.
* Added NameToSid.
* Major code cleanup/rewrite.
* Proper Unicode build (with Unicode plugin API).
* Support for 64-bit registry (SetRegView 64).
* Functions now return "ok" on success or "error" otherwise. On "error",
the next item on the stack will be the error description.
* Added version information resource.
23rd January 2008 - Afrow UK
* Added function IsUserTheAdministrator.
* Cleaned up code. Rebuilt as pure cpp, decreasing DLL size.
* No longer using gobal temp variable for strings.
7th January 2008 - Afrow UK
* Fixed registry instructions.
8th November 2007 - Afrow UK
* EnableInheritance/DisableInheritance names changed.
* Functions added:
EnableFileInheritance
DisableFileInheritance
EnableRegKeyInheritance
DisableRegKeyInheritance
GetFileOwner
GetFileGroup
GetRegKeyOwner
GetRegKeyGroup
ClearOnFile
ClearOnRegKey
GetCurrentUserName
SidToName
21st August 2007 - Afrow UK
* Added /noinherit switch to prevent child objects inheriting a
particular permission.
* Added EnableInheritance and DisableInheritance functions.
* Removed code to print items in the install log.
13th July 2007 - kichik
* Return proper error codes (return value instead of GetLastError())
30th June 2006 - Afrow UK
* Error MessageBox removed.
* Error messages are now just returned on NSIS stack.