У меня есть служба Windows, которая обновляет наш продукт. Он копирует файлы продуктов во временный каталог, обычно «C: \ Windows \ Temp», исправляет двоичные файлы и затем использует MoveFileEx для копирования файлов обратно в каталог установки при перезагрузке, обычно «C: \ Program Files \ Product ». Файлы в каталоге установки наследуют свои атрибуты безопасности из родительской папки. После копирования, исправления и перезагрузки файлы в каталоге установки пропускают некоторые ACL. В частности, файлы больше не имеют ACL для группы Users, поэтому пользователи больше не могут запускать программу после перезагрузки.Атрибуты файловой безопасности, зависящие от копии файла
Может ли кто-нибудь объяснить, что здесь происходит? Кажется, что копирование из каталога установки в каталог temp, файлы наследуют списки управления доступом временного каталога. Однако в MoveFileEx/Reboot файлы наследуют только ACL, которые имеют как каталоги установки, так и временные каталоги.
Я думаю, что это, вероятно, подталкивает проблему. Одна из поправок, однако,%% TEMP% для службы, работающей с привилегиями ususal, - это C: \ Windows \ Temp, а не временный каталог конкретного пользователя. – Charles 2008-10-15 13:35:21