1

Почему я не могу удалить группу из файла, если ей отказано в разрешении на чтение, хотя у меня есть разрешение на чтение из моей учетной записи, я являюсь частью группы администраторов и запускаю 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 ответ1

1

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

icacls b /remove:d "Users"

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

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

icacls b /remove "Users"

Резюме

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .