Назад | Перейти на главную страницу

В сервере 2008 R2, если я запустил приложение в режиме администратора, будет ли дочерний процесс в том же режиме?

В сервере 2008 R2, если я запустил приложение в режиме администратора, будет ли дочерний процесс в том же режиме?

Я поднимаю этот вопрос, потому что подозреваю, что дочерний процесс приложения не работает в режиме администратора.

Да, дочерние процессы наследуют токен доступа родительского процесса (от Процесс и взаимодействие UAC в TechNet):

Каждое приложение, которому требуется маркер доступа администратора, должно запрашивать согласие администратора. Единственное исключение - отношения, существующие между родительским и дочерним процессами. Дочерние процессы наследуют маркер доступа пользователя от родительского процесса. Однако и родительский, и дочерний процессы должны иметь одинаковый уровень целостности.


Немного связанная информация о бонусе:

В runas У утилиты есть два плохо документированных переключателя, которые называются /showtrustlevels и /trustlevel который, по-видимому, позволяет запускать (из процесса с повышенными правами) новый процесс с токеном стандартного пользователя, а не с токеном администратора, без снижения уровня целостности дочернего процесса:

runas /trustlevel:0x20000 cmd.exe

Вы обнаружите, что заголовок окна содержит (running as [username] with restricted privileges), и whoami отобразит список групп и привилегий с ограниченными правами по сравнению с запросом с повышенными правами:

Да, он будет выполняться с правами администратора.

Простой тест:

Вы можете проверить это, открыв приложение от имени администратора и запустив notepad.exe из приложения. Попробуйте сохранить пустой текстовый файл в папку C: \ Windows. Если это так не выдает ошибку разрешений, значит, вы знаете, что дочерний процесс (Блокнот) работает с повышенными привилегиями.

Да, ребенок будет в админке.

Вот почему запуск cmd.exe от имени администратора позволяет запускать другие программы в режиме администратора.