Я пытаюсь протестировать некоторые исключения файловой системы в приложении на основе Java.
Мне нужно найти способ создать каталог, расположенный в% TMP%, который установлен только для чтения.
По сути, на платформах UNIX/POSIX я могу выполнить команду chmod -w и получить этот эффект. Под Windows 7/NTFS это, конечно, другая история.
Я сталкиваюсь с несколькими проблемами по этому вопросу. Мой пользователь имеет "административное" право (хотя это не всегда так), и поэтому каталог создается с помощью ACL, в том числе:
- NT AUTHORITY\SYSTEM
- BUILTIN\ Администраторы
- <мой текущий пользователь>
Есть ли способ использовать icacls для того, чтобы по существу перевести этот каталог в состояние, в котором он является PERIOD только для чтения, выполнить мой тест и восстановить ACL для удаления?
РЕДАКТИРОВАТЬ С информацией, предоставленной @Ansgar Wiechers, я смог найти решение.
Я использовал следующее:
icacls dirname /deny %username%:(WD)
На странице, расположенной здесь, я нашел это в разделе замечаний:
icacls preserves the canonical order of ACE entries as:
* Explicit denials
* Explicit grants
* Inherited denials
* Inherited grants
Выполнив вышеупомянутую команду icalcs, я смог установить способность текущего пользователя записывать или добавлять файлы (WD) в каталог для запрета.
Тогда встал вопрос о возврате его на государственный почтовый тест:
icacls dirname /reset /t /c
Готово