I would like to understand access permissions in Vista, but I am having a little difficulty in finding information. Here is what I have figured out so far. I understand NTFS file permissions, I understand how ACL?s (Access Control Lists) are used, I understand the various ACE?s (Access Control Entries), and I understand Inheritance. I think I even understand how UAC (User Access Control) works.
If you go to the \windows\system32\ directory in Windows Explorer, right button click on the LogFiles directory, go to the properties window and click on the security tab, you will see the file permissions for that directory (one that everybody should have):
CREATOR OWNER
SYSTEM
Administrators
Users
TrustedInstaller
Highlighting each one will show you the permissions (greyed out by the system in this case). But that is only part of the story. If you go to the Command Prompt, change the directory to the system directory (cd\windows\system32), and enter the command "icacls logfiles", you get:
C:\Windows\System32>icacls logfiles
logfiles NT SERVICE\TrustedInstaller:(I)(F)
NT SERVICE\TrustedInstaller:(I)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(I)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(IO)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Administrators:(I)(OI)(CI)(IO)(F)
BUILTIN\Users:(I)(RX)
BUILTIN\Users:(I)(OI)(CI)(IO)(GR,GE)
CREATOR OWNER:(I)(OI)(CI)(IO)(F)
Successfully processed 1 files; Failed processing 0 files
You can see that each group actually has 2 permission sets (except CREATOR OWNER). When access is requested, 2 security tokens are passed to the security processor and one is filtered out by the UAC control depending on what level of access was requested. For a standard user requesting access beyond RX (Read/eXecute), the UAC control would ask for administrator credentials.
To see what permission groups are available, click on the ?Advanced? button in the ?LogFiles Properties? window. Then click on the ?Effective Permissions? tab. Then click ?Select?, ?Advanced?, and ?Find Now?. One of those, the Authenticated Users group, is the one I am having trouble with. According to Microsoft, that group is any standard user properly logged on locally (no blank password). You will find that group listed in various places throughout the disk with elevated permissions, but I can?t seem to find out how the logged on user gets tagged with that authority. It doesn?t appear to be happening on one of our computers, and I am at a loss to explain why or how to fix it.
I also don?t know how permissions are implemented on system objects other than files/directories. In one of my programs for example, a standard user cannot access HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Adapters, but an administrator can. There is no opportunity given to elevate permissions, even with UAC enabled.
Feel free to question or add to this information.
J.A. Coutts