Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрет доступа к папке, Собственно сабж... 
:(
    Опции темы
Mephisto
  Дата 13.4.2004, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Люди, возникла такая проблема: имею вынь 2000 про. Система фат 32. Необходимо запретить доступ к определённой папке на винте.
Научился закрывать доступ к дискам, может кто подскажет как к папкам?
PM   Вверх
Akina
Дата 13.4.2004, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Наиболее простое решение - покопаться по серверам фри-софта. там программ типа FolderGuard - аки грязи, выбирай на вкус и цвет.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mephisto
Дата 13.4.2004, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Цитата
Наиболее простое решение - покопаться по серверам фри-софта. там программ типа FolderGuard - аки грязи, выбирай на вкус и цвет.

Да у меня тоже есть, только меня инересует концепция. Для своей хитро.... проги.
PM   Вверх
Mephisto
  Дата 26.4.2004, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



В MSDNе нашел следующее:
Цитата
Denying Access Using Low-Level Functions
This example uses the low-level access-control functions to attach an empty DACL to a file object. The effect of an empty DACL is to deny all access to the object.

The example allocates a buffer for the security descriptor and calls the InitializeSecurityDescriptor function to initialize the buffer. Then, it allocates a buffer for the ACL and calls the InitializeAcl function to initialize that buffer. Next, it calls the SetSecurityDescriptorDacl function to attach the ACL to the security descriptor and then calls the SetFileSecurity function to attach the security descriptor to a file.

PSECURITY_DESCRIPTOR pSD;
PACL pACL;
DWORD cbACL = 1024;

// Initialize a security descriptor. 

pSD = (PSECURITY_DESCRIPTOR) LocalAlloc(LPTR,
    SECURITY_DESCRIPTOR_MIN_LENGTH);  // defined in Winnt.h 
if (pSD == NULL) {
    ErrorHandler("LocalAlloc");
    goto Cleanup;
}

if (!InitializeSecurityDescriptor(pSD,
        SECURITY_DESCRIPTOR_REVISION)) { // defined in Winnt.h 
    ErrorHandler("InitializeSecurityDescriptor");
    goto Cleanup;
}

// Initialize a DACL. 

pACL = (PACL) LocalAlloc(LPTR, cbACL);
if (pACL == NULL) {
    ErrorHandler("LocalAlloc");
    goto Cleanup;
}

if (!InitializeAcl(pACL, cbACL, ACL_REVISION2)) {
    ErrorHandler("InitializeAcl");
    goto Cleanup;
}

// Add an empty ACL to the SD to deny access. 

if (!SetSecurityDescriptorDacl(pSD,
        TRUE,    // fDaclPresent flag 
        pACL,
        FALSE)) { // not a default DACL 
    ErrorHandler("SetSecurityDescriptorDacl");
    goto Cleanup;
}

// Use the new SD as the file's security info. 

if (!SetFileSecurity(lpszTestFile,
        DACL_SECURITY_INFORMATION,
        pSD)) {
    ErrorHandler("SetFileSecurity");
    goto Cleanup;
}

Cleanup:
    if(pSD != NULL)
        LocalFree((HLOCAL) pSD);
    if(pACL != NULL)
        LocalFree((HLOCAL) pACL);

Попробовал перевести на барсик. Получилось нечто похожее на:
Код
Option Explicit
Private Declare Function InitializeSecurityDescriptor Lib "advapi32.dll" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal dwRevision As Long) As Long
Private Declare Function InitializeAcl Lib "advapi32.dll" (pACL As ACL, ByVal nAclLength As Long, ByVal dwAclRevision As Long) As Long
Private Declare Function SetSecurityDescriptorDacl Lib "advapi32.dll" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal bDaclPresent As Long, pDacl As ACL, ByVal bDaclDefaulted As Long) As Long
Private Declare Function SetFileSecurity Lib "advapi32.dll" Alias "SetFileSecurityA" (ByVal lpFileName As String, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long
Private Const SECURITY_DESCRIPTOR_REVISION = (1)
Private Const ACL_REVISION2 = (2)
Private Type ACL
       AclRevision As Byte
       Sbz1 As Byte
       AclSize As Integer
       AceCount As Integer
       Sbz2 As Integer
End Type
Private Type SECURITY_DESCRIPTOR
       Revision As Byte
       Sbz1 As Byte
       Control As Long
       Owner As Long
       Group As Long
       Sacl As ACL
       Dacl As ACL
End Type
Dim pSD As SECURITY_DESCRIPTOR, pACL As ACL
Const cbACL = 1024

Private Sub Command1_Click()
   If InitializeSecurityDescriptor(pSD, SECURITY_DESCRIPTOR_REVISION) = 0 Then
       MsgBox "InitializeSecurityDescriptor is Zero"
       Exit Sub
   End If
   If InitializeAcl(pACL, cbACL, ACL_REVISION2) = 0 Then
       MsgBox "InitializeAcl is Zero"
       Exit Sub
   End If
   If SetSecurityDescriptorDacl(pSD, True, pACL, False) = 0 Then
       MsgBox "SetSecurityDescriptorDacl is Zero"
       Exit Sub
   End If
   If SetFileSecurity("c:\Maxim.txt", &H1, pSD) = 0 Then
       MsgBox "SetFileSecurity is Zero"
       Exit Sub
   End If
End Sub

Вопрос состоит в следующем, что это такое:
Цитата
DACL_SECURITY_INFORMATION

Где мона взять это значение? Может кто-нить знает?
PM   Вверх
Akina
Дата 26.4.2004, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



HOWTO: Add an Access-Allowed ACE to a File Through Visual Basic

Q194757

Цитата
Public Const DACL_SECURITY_INFORMATION = &H4



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mephisto
Дата 26.4.2004, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Код
Public Const DACL_SECURITY_INFORMATION = &H4

Странно, всё работает, но доступ все-равно открыт!
Akina, а у тебя работает?

PM   Вверх
Akina
Дата 26.4.2004, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



У меня - хз, не пробовал... а pSD и pACL у тебя заполняются? и попробуй включить аудит на изменение прав, посмотреть как оно, есть или нет, с ошибкой или без...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mephisto
Дата 26.4.2004, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



У меня всё проходит без ошибок. Все функции выдают 1.
Цитата
попробуй включить аудит на изменение прав

Шо за ...?
PM   Вверх
Akina
Дата 27.4.2004, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Mephisto
Тьфу, блин! вот что значит невнимательность... у тебя же ФАТ32! какие там нахрен ACL???


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mephisto
Дата 27.4.2004, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



А как тогда работают твои фри-софтовые проги?
PM   Вверх
Akina
Дата 27.4.2004, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



По принципу софт-драйвера. ТО есть права не хранятся в ФС, доступ разрешается или запрещается драйвером.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0630 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.