[identity profile] sportactive.livejournal.com posting in [community profile] useful_faq
Есть W7.
Сижу в нем под учеткой администратора.
Есть несколько программ работающих с реестром : Reg Organizer и Registry Workshop.
Обе легальные самые новые, обновленные.
Возникла такая необходимость: Найти в реестре некий параметр /имя девайса/ и изменить это самое имя на другое.
Например в реестре 27 раз упоминается название внешней видеокамеры "R11", а я ее заменяю тотально на "L22".
В прошлые годы такие вопросы. что первый что второй редактор реестра - решали моментально - находили, заменяли и все было ОК.
Сейчас столкнулся с странным.
Редакторы реестра находят в реестре же W7 27 упоминаний искомого: ""R11""
При попытке замены комп заявляет - что "НЕТ доступа" !!! к 16 или 17 /штукам/ СТРОЧКАМ реестра!
При попытке тупой замены в ручную этих строчек - он пишет "ошибка записи в реестр"
Все строчки в блоке хоткй локал машин.
КАК ЭТО ТАК?! Это вообще то мой реестр! Я его хоть весь стереть могу. КТО и КАКИМ образом может мне запрещать над ним операции, при учете того что проги- редакоторы реестра запускаются от имени АДМИНИСТРАТОРА /прям через пункт в меню по правой конопке/
Кто может категорично не давать мне /администратору/ править реестр? да еще и в ветке хоткей локал машин, т.е в ветке несущей сведения о оборудовании? Кто может УСТАНАВЛИВАТЬ запреты на запись в реестре столь категоричным образом - плюя на мнение админа W7 ?
Целых 17 строчек мне совершенно недоступны даже стереть их нельзя! /пишет ошибка записи в реестр и строчки продолжают жить в реестре/
Как это вобще так?
Кто в этом понимает?
Просьба так же указать ЖИВОЙ форум по W7 для кросспостинга туда этой моей тайны двух океанов реестра W7.

Date: 2016-03-31 06:29 pm (UTC)
From: [identity profile] karpion.livejournal.com
У ключей реестра есть такие же права доступа, как у файлов; они отображаются в свойствах объекта (правый клик, Свойства). В обоих случаях (и для ключей реестра, и для файлов) можно выставить запрет доступа для кого угодно, в т.ч. для админа; это может даже простой юзер.

Однако, у админа всегда есть право "взять объект во владение" (сменить владельца объекта на себя) - и тогда он сможет поменять права доступа. Вернуть обратно во владение прежнего хозяина нельзя.

Date: 2016-03-31 06:52 pm (UTC)
From: [identity profile] sab123.livejournal.com
Администратор может отдать объект кому угодно, через прямое (и нетривиальное) использование дотнетовских классов в PowerShell.

Date: 2016-04-02 11:02 pm (UTC)
From: [identity profile] karpion.livejournal.com
Вроде, невозможность отдать объект во владение - это базовое свойство системы безопасности. Без него получается, что админ может взять объект во владение, изменить объект и вернуть его во владение - так что хозяин объекта не заметит факта несанкционированного доступа.

В Unix такого требования и не ставится. А в Windows оно есть - это типа преимущество такое.

Date: 2016-04-04 02:16 am (UTC)
From: [identity profile] sab123.livejournal.com
Но, логически рассуждая, как же тогда инсталлятор создает файлы, принадлежащие разным пользователям? Хотя конечно там может быть какой-то особый контекст.

Date: 2016-04-04 03:24 pm (UTC)
From: [identity profile] karpion.livejournal.com
Ну, например, можно внедрить в ядро свой драйвер - на этом уровне можно действовать минуя контроль прав доступа.

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

Date: 2016-04-07 12:46 am (UTC)
From: [identity profile] sab123.livejournal.com
В пакете идет манифест, в котором указывается security descriptor для всех файлов пакета, включая имя хозяина. Какой туда написан, такой и будет. Если ничего не указывать, в умолчальном доескрипторе хозяином будет Trusted Installer.

Date: 2016-03-31 08:52 pm (UTC)
From: [identity profile] dims12.livejournal.com
Виндовый администратор -- это не то же самое, что юниксовый рут. Виндовый администратор может не всё. Точнее, он может всё, но с бубном. На Линуксе у рута вообще нет ограничений, а в Виндах может потребоваться сперва дать себе права.

Кроме того, программы должны быть запущены с elevation, то есть, должно быть сделано "запуск от имени администратора". Не знаю точно, нужно ли это делать в том случае, если текущий юзер и есть администратор. Может быть что и нужно.

Date: 2016-04-01 04:19 am (UTC)
From: [identity profile] monalt.livejournal.com
Наверное, нужно.
На примере "Командной строки":
Просто запуск выдаёт: C:\Users\<Имя_профиля>
Запуск от имени администратора (ПКМ -> контекстное меню -> Запуск от имени администратора):
C:\Windows\system32

Но я не специалист и винда 7 Домашняя базовая.

Date: 2016-04-02 11:16 pm (UTC)
From: [identity profile] karpion.livejournal.com
Я не помню, как там в W'7. А в W'XP при инсталляции создаются несколько профилей
  • "Admin" - для админа;
  • "All Users" - общие данные юзеров;
  • "Default User" - с него копируется профиль для создаваемого юзера;
  • "LocalService" - система;
  • "NetworkService" - сетевая подсистема.
Последние два - это профили псевдоюзеров, под ними нельзя войти в систему, но под ними работают разные программы.

Т.е. фраза "у меня один юзер" неверна - в системе несколько юзеров.

А вообще, ситуация "система не позволяет админу какие-то действия" характерна для продвинутых операционок. W'NT создавалась людьми из DEC, которые делали VMS (операционку для VAX) - оттуда и растут ноги у этой фичи.

Unix в этом смысле проще - а разделение прав там обеспечивается иными механизмами.