That's an excellent question.
The scenarios are different depending on whether you are logged in as a
standard user or an administrator.
When logged in as a standard user, when you elevate you are logging in with
the credentials you supply to the elevation prompt and the elevated program
is running under those credentials. So, there are actually 2 SIDs involved
and things work as you described.
Things get tricky when you are logged in as an administrator. In this case,
you only have one SID, but you get 2 tokens with different privileges when
you log in. The tricky part is that in the restricted token, your group
membership in the administrators group is set to only be considered for deny
So, the following scenario could happen:
- You are logged in as an admin
- You are running a program that is not elevated that wants to change the
permissions on a file
- You are not granted access to the file in any permission
- The administrators group owns the file
You would not be able to use the non-elevated program to change the
permissions on the file, becase your membership in the administrators group
is being ignored when the system is deciding if you should be able to have
read/change acl access to the file by virtue of being the owner.
Of course, this scenario probably wouldn't happen in real life... the
program should know to throw a UAC prompt to get elevated.
In addition, there is also the concept of integrity levels. Most
non-elevated processes are assigned medium integrity, while an elevated
process is assigned high integrity. Every file is assigned an integrity
A process can only write to a file that has an equal or lower integity level
than the process, regardless of what permissions are set or who the owner
So, an un-elevated process (medium integrity) could not write to or change
the permissions on a file that has high integrity, even if your SID had full
control of the file and was the owner.
(There are no files by default that have high integrity).
"FromTheRafters" <erratic@xxxxxx> wrote in message
> "Man-wai Chang ToDie (33.6k)" <toylet.toylet@xxxxxx> wrote in message
>> Under Vi$ta:
>> First, I removed all accounts that could access folder X. Then I let user
>> Y to take control of the folder, including subfolders. I only want
>> Vi$ta's user Y to access that folder.
> Was user Y elevated when you took ownership?
> I've been wanting to ask the experts in this group about this
> for awhile anyway, so here it goes.
> When an SID is created by a limited user with an admin token
> (elevated standard account) is the "owner" field different than
> it would be without the admin token? In other words, is it only
> possible to be accepted as the "owner" if you are attempting
> access as that same user again also elevated?
>> Then I boot back into XP:
>> XP's Administrator as well as user could no longer access folder X,
>> unless I let XP's Admin to take control of folder X. But if I did that,
>> when I booted back into Vi$ta, Vi$ta's user Y could no longer access
>> folder X.
> Have you tried elevating Vista's Y user when attempting access of
> folder X? Not because it needs elevated privileges, but because it
> needs "owner" to match the SID - just in case the split token is what
> is causing this confusion. Thereafter you should be able to allow any
> standard user account you want to assume ownership.
> Sorry if this isn't helpful, but maybe you would have better luck
> in the micro$oft.pubic.windoze.vi$ta.insecurity newsgroup.