Сделать файл недоступным для чтения владельцу в Windows

Сделать файл недоступным для чтения владельцу в Windows

Я работаю с автоматизированным набором тестов программного проекта. У меня есть автоматизированный тестовый случай, который должен проверить, что код работает правильно, когда найден определенный файл, но у программы нет надлежащих прав на чтение содержимого этого файла. Этот тестовый случай в настоящее время работает на Linux и macOS, но я пытаюсь заставить его работать и на Windows.

Файл создается процессом теста, изменяется так, чтобы удалить разрешение на чтение, а затем код пытается прочитать файл, и тест проверяет, что код дает сбой ожидаемым образом. После запуска теста разрешения восстанавливаются (при необходимости), а файл удаляется.

В Linux и macOS разрешение на чтение удаляется с помощью chmod 000 unreadable.txt, что делает файл недоступным для чтения всем (кроме root). Я пытаюсь найти похожее решение в Windows, где я могу сделать этот тестовый файл недоступным для чтения текущим пользователем с помощью инструментов командной строки, поэтому тестируемая программа может потерпеть неудачу.

Насколько я понимаю, команда вроде этой icacls unreadable.txt /deny 'Everyone:(RC)'должна была бы сработать. icaclsподтвердить правило запрета:

         Everyone:(DENY)(Rc,S)

но тем не менее у меня есть полный доступ для чтения файла.

Я пробовал различные заклинания вызовов icaclsи cacls, с различными комбинациями попыток явного запрета для моей конкретной учетной записи пользователя и т. д. Все безрезультатно.

Я начинаю задаваться вопросом: разве в Windows невозможно запретить владельцу файла читать его?

Или, если это возможно, какую командную строку мне нужно ввести, чтобы сделать файл недоступным для чтения владельцу?

Связанный контент