PDA

Показать полную графическую версию : Как вернуть доступ (Access Control List)?


Ivan2021
07-02-2021, 14:44
Доброго времени суток!

Пишу в раздел Windows 7, как самый популярный, хотя интересует глобальное решение этого вопроса для всех версий форточек.

Проблема следующая. Если из под админа запустить subinacl, натравив на какой-либо объект с ключом /deny=Administrator то у пользователя пропадает доступ к этому объекту. Логично было бы вернуть права той же командой с ключом /grant=Administrator и забыть, но так не работает. Возникает ошибка 5 - Отказано в доступе.
Решается эта задача заходом под другой учёткой администратора и выполнения /grant под ней.

Есть еще пост тут (https://stackoverflow.com/questions/9974196/subinacl-getting-access-denied) с установкой каких-то непонятно с какого потолка взятых прав через sc sdset, но этот способ также приводит к ошибке доступа.

В общем то, вопрос следующий: как вернуть доступ к к какому-либо объекту из под той же учётки пользователя? Это принципиально важно.

Petya V4sechkin
07-02-2021, 17:35
Ivan2021, сначала задайте владельца объекта (опция /setowner).

Iska
07-02-2021, 17:55
Логично было бы вернуть права той же командой с ключом /grant=Administrator »
Ivan2021, Вы явно чего-то не понимаете и что-то путаете. Это не логично. Логично — отозвать внесённый запрет на объект (разумеется, будут отозвано всё — и запреты, и разрешения для указанной учётной записи):
subinacl.exe /file "C:\bla-bla-bla\bla-bla-bla.txt" /revoke=Администратор
пользователем, который имеет на это достаточные привилегии и доступ к объекту или является владельцем объекта.

P.S. Надо стараться по минимуму использовать привязку списков доступа к учётным записям пользователей, а стараться использовать группы безопасности. Добавлять запреты (вместо отзыва разрешений) вообще — только в исключительных случаях.

Ivan2021
07-02-2021, 23:00
Полностью согласен. Я не до конца понимал как оно работает, думал что есть только 2 действия - grant и deny, оказалось что нет. Есть набор привилегий от группы Администраторы, которые применяются по умолчанию.
К ним в случае /deny добавляется запрет определенному администратору, а обратное действие это действительно /revoke.

Однако, проблема не решается. Когда у группы доступ ACCESS_ALLOWED_ACE_TYPE-0x0, а у отдельного пользователя из этой группы ACCESS_DENIED_ACE_TYPE-0x1, он не может ничего сделать с этим объектом. revoke, deny, grant и даже display возвращают 5ю ошибку (отказано в доступе).

Получается, решение задачи из под учетки текущего администратора невозможно?

Iska
07-02-2021, 23:05
а обратное действие это действительно /revoke. »
Нет, это не «обратное действие».

Когда у группы доступ ACCESS_ALLOWED_ACE_TYPE-0x0, а у отдельного пользователя из этой группы ACCESS_DENIED_ACE_TYPE-0x1, он не может ничего сделать с этим объектом. revoke, deny, grant и даже display возвращают 5ю ошибку (отказано в доступе). »
Кто владелец объекта (см. сообщение №2)?

Ivan2021
08-02-2021, 00:22
Владелец "NT Authority\система". В англоязычной винде было бы "NT Authority\SYSTEM".

Iska
08-02-2021, 06:33
Ivan2021, тогда нужно сначала стать владельцем (см. сообщение №2).

Но, как мне кажется, Вы решаете какую-то другую задачу, в рамках попытки решения которой выбрали не совсем удачный подход. Может быть, озвучите?

Ivan2021
08-02-2021, 14:52
Можно я в ЛС напишу?
Iska превысил(а) максимальный объем сохраненных персональных сообщений
Тут, видимо, без захода из под учетки другого админа ничего не получится. Под системой я заходить не умею, это только сервис писать.




© OSzone.net 2001-2012