Как поставить атрибуты доступа?

Тема в разделе "WASM.WIN32", создана пользователем Praetor11, 26 янв 2011.

  1. Praetor11

    Praetor11 New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2009
    Сообщения:
    80
    В общем я пишу прогу под винду, она должна установить атрибуты доступа для файла, такие чтобы его можно было читать, но нельзя удалять. Для начала хотел попробовать выставить такие атрибуты через проводник, ставлю разрешения так:
    [​IMG]

    Файл действительно можно читать, писать нельзя, НО файл прекрасно удаляется и в корзину, и из корзины...( Че делаеть?
     
  2. kernel16

    kernel16 Human Vl

    Публикаций:
    0
    Регистрация:
    29 окт 2010
    Сообщения:
    316
    файл секьюрити?
     
  3. AndjellaArtavazdovna

    AndjellaArtavazdovna New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2010
    Сообщения:
    615
    Praetor11
    Вам в MSDN ) ,искать "File security and access rights",структуры SECURITY_DESCRIPTOR и SECURITY_ATTRIBUTES и список DACL. В структуре SECURITY_DESCRIPTOR необходимо добавить записи для определенных пользователей в системе в список DACL,установить для них необходимые права доступа,и передать указатель на соответствующую структуру SECURITY_ATTRIBUTES в CreateFile при создании файла. DACL доступен через соответствующие апишные ф-и. Надеюсь ничего не напутал.
    Вообще там с безопасностью возни много. Недавно юзал именованные каналы,тоже с такой ерундой сталкивался.
     
  4. Praetor11

    Praetor11 New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2009
    Сообщения:
    80
    AndjellaArtavazdovna

    Спасибо вам конечно за ваш пост, но вообще вопрос был не об этом. Как установить атрибуты я знаю, я не знаю КАКИЕ атрибуты мне нужно поставить чтобы файл можно было читать но нельзя удалять. Собственно вопрос сводится именно к тому, есть ли такой набор атрибутов и если есть, то какой он?
     
  5. AndjellaArtavazdovna

    AndjellaArtavazdovna New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2010
    Сообщения:
    615
    Praetor11
    Вот так сразу и не скажешь. В голову пришел только самый очевидный вариант - если у вас есть полные стандартные права
    доступа,заменить их на FILE_READ_DATA ,удалив все предыдущие. Но,сам не пробовал. Может прокатит,может нет.