Итак, задача была совершенно не тривиальна в некотором роде, т.к. по сути подразумевает несовместимые друг с другом вещи:
1. Дать пользователю возможность открывать файл на чтение;
2. При этом не давать возможность пользователю скопировать файл или внести в него изменения.
Невозможно? Ну почти… 🙂
Последовательность действий:
1. На папку в которой лежит файл даём права:
а. Чтение атрибутов;
b. Чтение дополнительных атрибутов;
c. Чтение разрешений
2. На нужный файл даём права:
а. Обзор-Выполнение;
b. Содержание-Чтение;
c. Чтение атрибутов;
d. Чтение дополнительных атрибутов;
e. Чтение разрешений.
Результат:
После выполнения первого пункта, содержимое папки будет не видно. После выполнения второго пункта, файл запускается, но не виден, на команду copy и type ругается «нет доступа».
Выводы:
В конечном итоге, доступ к файлу есть, но мы его не видим. Что же сделать для того, чтобы получить к нему доступ? Как самый простой вариант — сделать на него ярлык, ну а на все остальные варианты применения данного метода я думаю у Вас самостоятельно фантазии хватит.
Кстати, вот тут можно посмотреть кучу интересных решений касаемо системы Windows: http://forum.windowsfaq.ru/