bifido 76
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору laidbacktokyo Мне как-то на системном диске производить эксперимент не хотелось, поэтому прежде чем написать свой пост, я взял произвольную папку с подкаталогами и файлами на диске D:\, и выполнил для нее команду chml -i:h -b - все содержимое получило высокий уровень целостности, а вот выполнение команды с параметром -noinherit (chml -i:h -b -noinherit) присваивает нужный уровень только конкретному объекту без наследования. Возможно, в утилиту встроена, так называемая, "защита от дурака" и даже при выполнении команды chml -i:h -b без параметра -noinherit для системного диска, наследование отключено, но об этом нигде не сказано (или я не нашел). Проверю на виртуалке - посмотрю. PS. Проверил на виртуалке - никакой "защита от дурака" в ней нет, команда chml -i:h -b пытается присвоить высокий уровень всем объектам на системном диске. Для ряда системных папок сделать ей это не удается (например Windows или Program Files), по причине, указанной на сайте программы - "Between Vista and Windows 7, Microsoft changed something -- I haven't figured out what, yet -- that broke the -fs ("force system") switch on chml. That means you can't force an integrity level to or from System directly from chml under Windows 7. You can work around this by running chml under Sysinternals' psexec tool." Однако другим объектам присваивается высокий уровень целостности, например пользовательским папкам (Users), система от этого у меня конечно не загнулась, но как это повлияет на ее работу и работу установленных программ в дальнейшем, предсказать затруднительно, особенно на сервере (например, для создания файлов или внесения в них изменений в этих папках требуется теперь наличие админ. прав). Так что, если использовать данную утилиту, то только, как я уже говорил, с обязательным указанием ключа -noinherit. PSS. Команда icacls C:\ /setintegritylevel (OI)(NP)(IO)H аналогична chml -i:h -b, без ключа -noinherit, и приводит к тем же маложелательным последствиям, поэтому если использовать icacls, то только команду icacls C:\ /setintegritylevel H /c, то есть без наследования. Отображение разрешений для системного диска при этом конечно несколько измениться, вместо Mandatory Label\High Mandatory Level: (OI)(NP)(IO)(NW) будет просто Mandatory Label\High Mandatory Level: (NW), но это в принципе нормально. | Всего записей: 2474 | Зарегистр. 08-04-2016 | Отправлено: 17:24 08-06-2018 | Исправлено: bifido 76, 18:30 08-06-2018 |
|