Почему я не могу удалить группу с icacls из файла после отмены прав на чтение?

Почему я не могу удалить группу из файла, если ей отказано в разрешении на чтение, хотя у меня есть разрешение на чтение из моей учетной записи, я являюсь частью группы администраторов и запускаю icacls из командной строки с повышенными привилегиями?

Это просто удалит группу "Пользователи":

copy a b
icacls b /inheritance:d
icacls b /remove:g "Users"

Результат: файл больше не имеет группы "Пользователи".

Но если я удалю доступ для чтения, то группа не может быть удалена с помощью icacls:

copy a b
icacls b /inheritance:d
icacls b /deny "Users":r
icacls b /remove:g "Users"

Результат: в файле все еще есть группа "Пользователи".

Чтобы обойти это, я должен сначала предоставить группе "полное" разрешение, а затем использовать /remove чтобы гарантировать, что группа будет удалена. Но это похоже на уязвимость, поскольку определенная группа, вкратце, будет иметь полный доступ.

1 ответ

Решение

Вы используете неправильный переключатель. Вам нужно использовать /remove:d:

icacls b /remove:d "Users"

Когда группе было отказано в разрешениях, нет никаких прав для /remove:g переключиться на удаление.

Альтернативно, чтобы удалить любые разрешения, назначенные группе, независимо от того, предоставлены они или нет, используйте:

icacls b /remove "Users"

Резюме

  • /remove:g удаляет права (G)
  • /remove:d удаляет права, которые (D) включены
  • /remove удаляет все права

Более подробную информацию о коммутаторах Icacls можно найти на TechNet.

Другие вопросы по тегам