Почему я не могу удалить группу с 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.