спасибо за Ваш ответ. Но это по замыслу? Или это ошибка? Какой смысл использовать переключатель ": r", если единственный способ, которым вы можете быть уверены, что вы можете заменить разрешения (и наследование), это?
icacls folder /remove user icacls folder /grant user:(oi)(io)rx
Я проверял, как работает «icacls / grant», и обнаружил, что icacls пишет запись для каждого типа наследования.
Попробуй это:
md test icacls test /inheritance:r icacls test /grant user:f icacls test /grant:r user:(oi)rx icacls test /grant:r user:(ci)rx icacls test /grant:r user:(oi)(ci)rx icacls test /grant:r user:(ci)(oi)(io)rx icacls test /grant:r user:(io)(oi)rx icacls test /grant:r user:(io)(ci)rx
Затем, чтобы увидеть ACL:
icacls test
Результат:
test PC\user:(F) PC\user:(OI)(IO)(RX) PC\user:(OI)(RX) PC\user:(CI)(IO)(RX) PC\user:(CI)(RX) PC\user:(OI)(CI)(IO)(RX) PC\user:(OI)(CI)(RX)
Итак, я обнаружил, что icacls /grant:rзаменяет разрешения только для одного и того же типа наследования. На мой оригинальный вопрос:
md test icacls test /inheritance:r icacls test /grant user:(oi)(ci)f icacls test /grant:r user:(oi)(io)rx
Тест icacls дает вывод
test PC\user:(OI)(IO)(RX) PC\user:(OI)(CI)(F)
И я думаю, что GUI показывает только (OI) (CI) (F), потому что он включает в себя (OI) (IO) (RX)
Я что-то пропустил? Это ошибка или по замыслу?
Я не могу найти авторитетный источник, который объясняет, почему команда `grant: r` не заменяет * все * разрешения для указанного пользователя. Мое * предположение * заключается в том, что администраторам нужен способ заменить конкретное разрешение + наследование ACE (например, предоставить только чтение файлам), не затрагивая (или не изменяя) другие разрешения. Кажется, ключи `/ reset` или` / remove` предусмотрены для случая, когда все права пользователя должны быть заменены. Я согласен, что текст справки для `/ grant: r` не является исчерпывающим по своей функции.
Twisty Impersonator 6 лет назад
0
1 ответ на вопрос
1
Twisty Impersonator
Ваша первая команда предоставляет полный доступ к папке «Эта папка, подпапки и файлы».
Разрешения не заменяются второй командой, которая предоставляет разрешения «Чтение и выполнение» для файлов только благодаря использованию комбинации наследования объектов (OI)(IO). Очевидно, вы не можете заменить разрешения, которые применяются к «Эта папка, подпапки и файлы», разрешениями, которые применяются только к файлам.
Чтобы заменить разрешения «Полный доступ» на «Чтение и выполнение» для «Эта папка, подпапки и файлы», используйте то же наследование объектов во второй команде: