Talk:AccessControl plug-in: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
(Fixed German typo in "Set the append/modify flag for ACLs")
(Added SID to the "Usage Example" to clear some potential confusion.)
Line 50: Line 50:
:It would be much easier if the AccessControl-functions always push something on the stack, e.g. "success" if there wasn't an error. Otherwise the functions may set or clear the error flag. Thus you simply know if something should be on the stack or not. --[[User:212.51.7.22|212.51.7.22]] 22:52, 1 October 2007 (PDT)
:It would be much easier if the AccessControl-functions always push something on the stack, e.g. "success" if there wasn't an error. Otherwise the functions may set or clear the error flag. Thus you simply know if something should be on the stack or not. --[[User:212.51.7.22|212.51.7.22]] 22:52, 1 October 2007 (PDT)


:Use the SID instead of "(BU)" for Windows 7 - "(BU)" doesn't work. This may also help for non-English installations.
:Use the SID "(S-1-5-32-545)" instead of "(BU)" for Windows 7 - "(BU)" doesn't work. This may also help for non-English installations.
--[[User:Roderickm|Roderickm]] 13:09, 17 February 2011 (UTC)


== IsUserTheAdministrator problem? ==
== IsUserTheAdministrator problem? ==

Revision as of 06:04, 23 September 2011

What about recursive rights?

--141.7.15.121 00:25, 30 July 2007 (PDT)

Vista / Win 7 support

I've tested AccessControl under Vista and it works great. Thx



I tested on Vista64 and UAC is enabled, but it's failure.

                                       2009-8-6

Works on Windows 7 Pro (default install - using admin + UAC enabled, etc.) - only issue is that the SID "(S-1-5-32-545)" must be used instead of "(BU)". Thanks! --Roderickm 13:10, 17 February 2011 (UTC)

Set the append/modify flag for ACLs

If you want to set the append/modify flag (in German: Aendern) for files/directories, set the accesscontrol flag to:

 "GenericRead + GenericExecute + GenericWrite + Delete"

Usage Example

  AccessControl::GrantOnFile \
    "$INSTDIR\database" "(BU)" "GenericRead + GenericExecute + GenericWrite + Delete"
You can't use it that way because your stack may be modified after that call. Because you don't know about causing an error (the error flag isn't set although an error occured) you have to check the stack:
  Push $0 ; save 
 
  Push "Marker" 
  AccessControl::GrantOnFile \
    "$INSTDIR\database" "(BU)" "GenericRead + GenericExecute + GenericWrite + Delete"
  Pop $0 ; get "Marker" or error msg
  StrCmp $0 "Marker" Continue
  MessageBox MB_OK|MB_ICONSTOP "Error setting access control for $INSTDIR\database: $0"
  Pop $0 ; pop "Marker"
 
Continue:
  Pop $0 ; restore
It would be much easier if the AccessControl-functions always push something on the stack, e.g. "success" if there wasn't an error. Otherwise the functions may set or clear the error flag. Thus you simply know if something should be on the stack or not. --212.51.7.22 22:52, 1 October 2007 (PDT)
Use the SID "(S-1-5-32-545)" instead of "(BU)" for Windows 7 - "(BU)" doesn't work. This may also help for non-English installations.

IsUserTheAdministrator problem?

I'm able to trick this export to both return "no" when the admin group is enabled in the process token, and "yes" when the admin group is a deny SID. You are better off using the UserInfo plugin if you need to check if the current user has admin access rights since it already has support for deny SID's and "dynamic group membership". If you just need the SID or info about a user other than the current user, this export is fine

IsThisPossible?

How can I delete existing ACL and replace with specified (SET ) ?

I want to do someting like : </INHERIT> </REPLACE> which will delete existing ACL and force propagation from upper level

How do I upload NSIS port of AccessControl to this Wiki?

Hello guys, I would like to know how could I upload the zip file containing the AccessControl port to NSIS Unicode. Regards, --Balena 19:54, 7 June 2009 (UTC)

See Uploading files. --kichik 06:49, 8 June 2009 (UTC)

I've downloaded the plugin but It only contains a dll file, not a nsh. The plug in usage manual details that the dll must go into the plugin directory, and the nsh into the include directory. Why does this plugin lack the nsh file? Is it discontinued?

Thank you!

Answer (2011-09-23)

To install this plugin, copy-and-paste the content of the ZIP archive into your NSIS folder and you are done.

The plugin extends NSIS. This means that you do not have to load any NSH file or something. Simply use it like the example(s) show you. In simpler words: it works "out of the box".