Запретить удаление файлов пользователям но не навредить программам
От: AlexanderDz  
Дата: 06.10.14 14:48
Оценка:
Привет!

Ну уверен что пишу в правильный форум, но тем не менее.

Пишем группу продуктов на Delphi, C++/MFC, VB6 для некоторой консервативной индустрии. В связи с правилами в этой индустрии, пользователям запрещено удалять файлы. (Там есть исключения, но это отдельная история). Когда программы и пользователи работали под Windows XP, нам удалось найти набор allow & deny rights на удаление, создание, модификацию файлов, так что стандартными средствами (Windows Explorer) файлы удаляться не могут, а наши программы создают и обновляют файлы без проблем. Теперь, когда начался массированный переход на Windows 7/8 оказалось что тот найденный набор allow & deny rights больше не работает.

Для тех кто не знает, обычная программа на Delphi и MFC пишет приблизительно так: если пользователь сказал сохранить данные в новый файл c:\xyz\a.abc, то программа создает "временный" файл c:\xyz\a.$$$, производит сохранение данных, и, наконец, если запись завершилась успешно, переименовывает a.$$$ в a.abc. В случае перезаписи файла a.abc после модификации данных, уже существующий файл a.abc удаляется, а "временный" файл a.$$$ переименовывается в a.abc.

(Кстати, стандартный notepad из Windows тоже работает приблизительно так-же)

В описанной процедуре встречается удаление файлов которое под новыми версиями Windows больше не работает. К глубокому сожалению, из-за кривых ручек тестера проблему обнаружили совсем недавно.

Вопрос: кто встречался с задачей запрета на удаление файлов и как ее решил.

Александр
windows xp windows 7 windows 8 file system access rights deny rights
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.