Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Can it be done without downloading subinacl.exe at all?

share|improve this question

migrated from stackoverflow.com Apr 28 '10 at 18:34

This question came from our site for professional and enthusiast programmers.

up vote 2 down vote accepted

Have you looked at icacls.exe and cacls.exe? (both in the System32 folder, at least on Win7)

share|improve this answer
2  
These do NTFS, not shares AFAIK support.microsoft.com/kb/919240 – gbn Apr 28 '10 at 18:01
    
I've discovered that the "best practice" is to just set the share permissions to "Everyone" (which it is by default), and instead refine the NTFS permissions using cacls.exe. I did not realize NTFS permissions also affect users accessing the share, so this answer gives me exactly what I need. Thank you! – BlueRaja Apr 30 '10 at 15:26

Maybe, on Windows 2003. I haven't tried it...

net share /grant 

Edit, after comment, from a Win 7 x64 machine.

Note the [/GRANT:user,[READ | CHANGE | FULL]]

C:\Users\gbn>net share /?
The syntax of this command is:

NET SHARE
sharename
          sharename=drive:path [/GRANT:user,[READ | CHANGE | FULL]]
                               [/USERS:number | /UNLIMITED]
                               [/REMARK:"text"]
                               [/CACHE:Manual | Documents| Programs | BranchCach
e | None]
          sharename [/USERS:number | /UNLIMITED]
                    [/REMARK:"text"]
                    [/CACHE:Manual | Documents | Programs | BranchCache | None]
          {sharename | devicename | drive:path} /DELETE
          sharename \\computername /DELETE


C:\Users\gbn>
share|improve this answer
    
"The /grant option is unknown" – BlueRaja Apr 28 '10 at 18:34

Old question, but I recently needed to do this for multiple home shares in order to restrict 'Full Control'. While you could do this at NTFS level, it takes time to apply recursivly, time to reverse, and tools like the ADUC MMC can put the permissions back.

There doesn't seem to be a built in command line tool for managing permissions on existing shares, only during initial setup, but you can do multiple grants, so if the shares going offline for a moment is not an issue you could use:

NET SHARE example /DELETE /Y
NET SHARE example /GRANT:Everyone:Change /GRANT:Administrators:Full /UNLIMITED /CACHE:None

But that was not an option for me, so ended up using the excellent 'SetACL.exe' tool which also has an option to target share names.

SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-1-0;p:change"
SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-5-32-544;p:full"

Note this is using the 'Well-known SID' for Everyone ( S-1-1-0 ) and Local Administrators ( S-1-5-32-544 ). You could use the name, but it avoids lookups and any chance of it being mixed up with a domain group.

For efficiency multiple changes can be merged into a single command:

SetACL.exe -on "example" -ot shr -actn ace -ace "n:S-1-1-0;p:change" -ace "n:S-1-5-32-544;p:full"

Note the SetACL command targets the SHARE NAME and not the folder path of the share, which is normally used for NTFS permissions.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.