Мелочи: Как устанавливать ACL'ы и создавать SECUIRTY_DESCRIPTOR'ы
?????? ??????? ?????????? ACL (Access Control List) ?? ????? ??? ?????-?? ?????? ???????, ????? ????? ? registry, COM ??????? ??? ?????????? ??? ?????-??????. ? ?????? ??? ????? ???? ?????-?????? ??????? ????? ????? CoInitializeSecurity ??? COM ???????? ??? SetFileSecurity ??? ??????.
??? ?????? ???? ???? - ??? ??? ????????? ?????????? ? ????????? ????????? SECURITY_DESCRIPTOR. ? ????? ?? ????????? ???????????, ??? ?? ?? ???????, ?? ?????? ?????? ????? ?????????????? ?? ??????? ??????? ??????? ?????? InitializeSecurityDescriptor, ConvertStringSidToSidW, SetSecurityDescriptorOwner, InitializeAcl, AddAccessAllowedAce and SetSecurityDescriptorDacl (???????? ?? ?????-?????? ????, ???? ???? ?????? ?????????).
??????, ???? ??????????? ????? ??????? ?????? ? ?????????????? Security Descriptor String Format, SDDL ? ???????????? ?????? ConvertStringSecurityDescriptorToSecurityDescriptor. ??? ???????? ???:
PSECURITY_DESCRIPTOR psd = NULL;
ULONG cSDSize = 0;if ( ! ConvertStringSecurityDescriptorToSecurityDescriptor(
L"O:BAD:(A;;GAFA;;;SY)(A;;GAFA;;;BA)",
SDDL_REVISION_1, &psd, &cSDSize
)
)
{
// ??????? ????-????? ?? ?????? ???????????? ??????????????
}... ???????????? SECURITY_DESCRIPTOR ? psd
// ?? ?????? ?????????? ???, ????? ??? ?? ?????
if ( psd ) LocalFree(psd);
?????????? ?????? L"O:BAD:(A;;GAFA;;;SY)(A;;GAFA;;;BA)" ????????, ??? ?????????? ??????? (O:) ?????? ???? ????? ?????? ADMINISTRATORS (BA), ? ??? ??? ? SYSTEM (SY) ????? ??? ????? (GA) ? ???????? (FA) ????? (D:) ??? ????? ???????.
?????? ??? ?????? ?????????? ?????:
O:sid_?????????
G:sid_??????
D:?????_dacl(ace1)(ace2)...(acen)
S:?????_sacl(ace1)(ace2)...(acen)
(??????, ??? ?????? ? ???????, ????? ?????? ?? ?????)
SID ????????? ? ?????? ????? ???????????? ? ??????? ??????? (????? S-1-5-32-544) ??? ??????????? ?????????? (????? BA), ??????? ????? ????? ????? ? ?????. ACE'? ??????????? ? SDDL ???????. ??? ?????????? ?????? ? ?????????.
Comments
Anonymous
January 01, 2003
Да, по ссылкам вроде все и описано. Просто вам вместо BA нужно AU вроде бы (администраторы тоже являются пользователями), вот и все. "AU" SDDL_AUTHENTICATED_USERS Authenticated users. The corresponding RID is SECURITY_AUTHENTICATED_USER_RID. "BA" SDDL_BUILTIN_ADMINISTRATORS Built-in administrators. The corresponding RID is DOMAIN_ALIAS_RID_ADMINS.Anonymous
January 01, 2003
Подскажите пожалуйста как правильно написать Security Descriptor String так чтобы у меня файлы могли редактировать и программы запущенные под администратором и обычные программы. Пробовал сам написать, не получается. Конвертор возвращает ошибку.