
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
24.11.2005, 10:15
|
|||
|---|---|---|---|
|
|||
Открываем доступ |
|||
|
#18+
Пишу программку, которая могла бы открывать доступ к папкам. Посмотрел мсдн. Покумекал и вот что получилось EXPLICIT_ACCESS ea[2]; PSID pAdminSID = NULL, pEveryoneSID = NULL; DWORD dwRes; PACL pACL = NULL; PSECURITY_DESCRIPTOR pSD = NULL; SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY; SID_IDENTIFIER_AUTHORITY SIDAuthNT = SECURITY_NT_AUTHORITY; NET_API_STATUS res; SHARE_INFO_502 p; DWORD parm_err = 0; if(!AllocateAndInitializeSid(&SIDAuthWorld, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, &pEveryoneSID)) { printf("AllocateAndInitializeSid Error %u\n", GetLastError()); } ZeroMemory(&ea, 2 * sizeof(EXPLICIT_ACCESS)); ea[0].grfAccessPermissions = GENERIC_READ; ea[0].grfAccessMode = SET_ACCESS; ea[0].grfInheritance= NO_INHERITANCE; ea[0].Trustee.TrusteeForm = TRUSTEE_IS_SID; ea[0].Trustee.TrusteeType = TRUSTEE_IS_WELL_KNOWN_GROUP; ea[0].Trustee.ptstrName = (LPTSTR) pEveryoneSID; if(! AllocateAndInitializeSid(&SIDAuthNT, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &pAdminSID)) { printf("AllocateAndInitializeSid Error %u\n", GetLastError()); } ea[1].grfAccessPermissions = GENERIC_READ; ea[1].grfAccessMode = SET_ACCESS; ea[1].grfInheritance= NO_INHERITANCE; ea[1].Trustee.TrusteeForm = TRUSTEE_IS_SID; ea[1].Trustee.TrusteeType = TRUSTEE_IS_GROUP; ea[1].Trustee.ptstrName = (LPTSTR) pAdminSID; dwRes = SetEntriesInAcl(1, ea, NULL, &pACL); if (dwRes != ERROR_SUCCESS) { printf("SetEntriesInAcl Error %u\n", GetLastError()); } pSD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR, SECURITY_DESCRIPTOR_MIN_LENGTH); if (pSD == NULL) { printf("LocalAlloc Error %u\n", GetLastError()); } if (!InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION)) { printf("InitializeSecurityDescriptor Error %u\n", GetLastError()); } if (!SetSecurityDescriptorDacl(pSD, TRUE, // bDaclPresent flag pACL, FALSE)) // not a default DACL { printf("SetSecurityDescriptorDacl Error %u\n", GetLastError()); } p.shi502_netname = TEXT("TESTSHARE"); p.shi502_type = STYPE_DISKTREE; // disk drive p.shi502_remark = TEXT("TESTSHARE to test NetShareAdd"); p.shi502_permissions = ACCESS_ALL; p.shi502_max_uses = 4; p.shi502_current_uses = 0; p.shi502_path = wszPath; p.shi502_passwd = NULL; // no password p.shi502_security_descriptor = pSD; res=NetShareAdd(NULL, 502, (LPBYTE) &p, &parm_err); Но не получается выставить права доступа к папке. Указяваю, но они не устанавливаются Подскажите кто знает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
24.11.2005, 17:08
|
|||
|---|---|---|---|
Открываем доступ |
|||
|
#18+
не устанавливаются права которые на шару или которые на папку? ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2032402]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
84ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 424ms |

| 0 / 0 |
