Re: Inherited Security
- From
- Alex Fedotov ()
- To
- Alexander Filatov ()
- Date
- 2001-11-02T12:37:40Z
- Area
- SU.WINDOWS.NT.PROG
From: "Alex Fedotov" <me@alexfedotov.com>
Alexander Filatov wrote:
> > А чем пользуешься для получения security descriptor?
> > GetNamedSecurityInfo все нормально выдает, как собственные, так и
> > наследованные ACEs. А потом, хочешь GetEffectiveRightsFromAcl,
> > хочешь AccessCheck.
>
> Я пробовал GetFileSecurity/GetSecurityDescriptorDacl равно как и
> GetNamedSecurityInfo. Ни тот ни другой мне не дают унаследованных прав.
> Только явные. (Что я делаю не так?)
Ну откуда я знаю, что ты делаешь не так, когда ты еще ни строчки кода не
показал. Вот код:
PACL pAcl;
PACCESS_ALLOWED_ACE pAce;
PSECURITY_DESCRIPTOR pSecDesc;
PWSTR pszSid;
if (GetNamedSecurityInfo(_T("D:\\Projects"), SE_FILE_OBJECT,
DACL_SECURITY_INFORMATION, NULL, NULL,
&pAcl, NULL, &pSecDesc) == ERROR_SUCCESS)
{
_ASSERTE(pSecDesc != NULL);
_ASSERTE(pAcl != NULL);
for (UINT i = 0; i < pAcl->AceCount; i++)
{
GetAce(pAcl, i, (PVOID *)&pAce);
ConvertSidToStringSid((PSID)&pAce->SidStart, &pszSid);
ATLTRACE(_T("Type: %d, Flags: 0x%02X, Mask: 0x%08X, Sid:
%ls\n"),
pAce->Header.AceType, pAce->Header.AceFlags,
pAce->Mask, pszSid);
LocalFree((HLOCAL)pszSid);
}
LocalFree((HLOCAL)pSecDesc);
}
А вот его выдача:
Type: 0, Flags: 0x03, Mask: 0x001200A9, Sid: S-1-5-21-1687947936-...
Type: 0, Flags: 0x03, Mask: 0x001200A9, Sid: S-1-5-18
Type: 0, Flags: 0x03, Mask: 0x001200A9, Sid: S-1-5-21-1687947936-...
Type: 0, Flags: 0x13, Mask: 0x001F01FF, Sid: S-1-5-32-544
Type: 0, Flags: 0x12, Mask: 0x001200A9, Sid: S-1-5-11
Как видишь, сначала идут три собственные ACEs, а потом две наследованные.
> Сорри, если я неправильно выразился. Еще раз. Мне нужен _список_ всех
> прав, аналогично тому, что можно посмотреть в свойствах файла.
> Соответственно, ни GetEffectiveRightsFromAcl ни AccessCheck здесь, мягко
> говоря, не удобны.
Понятно. Список так список.
-- Alex Fedotov
--- ifmail v.2.15dev5
* Origin: Undisclosed (2:5020/400)