На страже файлов Фленов Михаил Хакер, номер #094, стр. 094-126-4 - есть ли ACL-список. Если параметр равен true, то он есть в третьем параметре; - указатель на ACL-список, с которым происходит связь; - если этот параметр равен true, то ACL будет использоваться по умолчанию. Связь с файлом Список доступа есть (он уже связан с дескриптором), осталось только назначить этот дескриптор файлу — и мы в шоколаде. Для этого используем функцию SetFileSecurity, у которой три параметра: путь к файлу, тип изменяемой информации (в нашем случае это DACL_SECURITY_INFORMATION) и новый дескриптор. Вот так объявлена эта функция: function SetFileSecurity( lpFileName: PChar; SecurityInformation: SECURITY_INFORMATION; pSecurityDescriptor: PsecurityDescriptor ): BOOL; stdcall; Ура, новый список назначен файлу, и теперь любой пользователь может делать с ним все, что угодно, потому что мы дали разрешение с маской доступа GENERIC_ALL. Итого Работа с безопасностью окон — нудное и немного запутанное занятие. Но трудно не согласиться, что упрощать его нет смысла, ведь все продумано до мелочей. Другое дело, как эти мелочи реализованы. На данный момент система безопасности Windows уже отлажена и при правильном подходе очень эффективна. Когда мы программно формировали новый список, то все ACE-записи банально добавлялись в самый конец без сортировки. Если после этого войти в свойства файла и перейти на закладку Security, то окна предложат отсортировать список. Конечно, желательно согласиться, иначе ты можешь увидеть не корректный список. На этом завершим нашу тему. Удачного кодинга! Полный исходный код примера ты сможешь найти на компакт-диске. Чтобы было проще воссоздать пример, можешь использовать в качестве базы пример из предыдущего номера ][. |