icacls Deny Удалить для всех, кто не работает
Я пытаюсь лишить всех пользователей возможности удалить файл. Я хотел бы, чтобы любой пользователь мог прочитать или выполнить файл, но не изменять или удалять его. Однако после того, как я использую следующий код через командную строку, никто даже не сможет получить доступ к файлу!
icacls pic.jpg /deny Everyone:(D)
Я пробовал варианты предоставления одних разрешений и отказа других безрезультатно. Как я могу сделать это (в Windows 7/8)?
2 ответа
Для защиты файла вы должны использовать:
icacls pic.jpg /deny Everyone:(DE)
чтобы защитить папку с использованием ее содержимого:
icacls pics /deny Everyone:(OI)(CI)(DE,DC)
D представляет собой комбинацию различных прав доступа, если вы хотите предоставить право на удаление файлов.
Чтобы получить этот язык независимое использование *S-1-1-0
вместо Everyone
,
(OI)
= Наследование объекта(CI)
= Наследование контейнера
Чтобы предотвратить удаление файла, вам необходимо отказать в разрешении на удаление файла и запретить удаление дочернего элемента (он же "Удаление подпапок и файлов") в содержащей папке. Оба не должны быть разрешены, чтобы действительно предотвратить удаление.
Другими словами, Windows позволяет удалить файл, если предоставлено одно или оба разрешения.
Итак, предположим, что вы защищаете foo \ bar.txt от удаления, вы должны как минимум:
icacls foo\bar.txt /deny Everyone:(DE) *S-1-5-7:(DC)
icacls foo /deny Everyone:(DC) *S-1-5-7:(DC)
Обратите внимание, что я включаю S-1-5-7 (ANONYMOUS LOGON) в список запрета, потому что анонимный вход не входит в группу Everyone начиная с Windows XP, и лучше в любом случае явно запретить анонимный вход.
РЕДАКТИРОВАТЬ: будьте осторожны, что в icacls
(D) разрешение отличается от (DE). Первая включает в себя право "Синхронизировать", а вторая - только "Удалить". Если вы откажетесь от синхронизации правильно, вы не сможете получить доступ (просмотреть или CD
к или DIR
в) папка.
Предупреждение: icacls
ошибка, из-за которой файлы с (DE), которые запрещены, будут отображаться как (DENY)(D)
вместо (DENY)(DE)
по запросу. Сообщается в 2 3. Как упоминалось выше (D) и (DE) различны.