Наименее привилегии - запускайте cmd как "стандартный" пользователь из привилегированной учетной записи, без пароля
Этот вопрос заключается в том, как работать с наименьшими привилегиями. Это (на самом деле) не для работы с повышенными привилегиями.
Прежде всего позвольте мне прояснить пару вещей об общем понимании привилегий учетной записи Windows 7.
Каждая ОС Windows 7 должна иметь хотя бы одного пользователя и хотя бы одного пользователя-администратора.
Поэтому первая (и часто только) учетная запись в Windows 7 заполняется как пользователь-администратор, хотя есть и другой отдельный пользователь Windows 7 с именем "Администратор", который можно включить вручную после настройки начальной учетной записи - эта учетная запись является истинный "Администратор", который не может зависеть от таких вещей, как, например, UAC.
UAC - это (прежде всего) механизм, который предупреждает пользователя о том, что программа пытается получить доступ к какому-либо защищенному ресурсу, и предоставляет им возможность подтвердить процедуру, введя имя пользователя / пароль. Это предоставляет пользователям лучший набор параметров безопасности, поскольку они могут авторизовать все, что им нужно для себя, на своих персональных устройствах, но они также не просто запускают программы на своем компьютере (если, конечно, они этого не разрешали).
Теперь, когда этот пользователь пытается запустить приглашение cmd, я заметил, что, если пользователь специально не запускает, например,
runas / пользователь: myonlywindowsuser cmd
Это приглашение cmd не загружает профиль пользователя (по умолчанию).
Учитывая то, что я сказал выше, похоже, не имеет особого смысла, что профиль пользователя не будет доступен для командной строки. Тем не менее, это то, что, кажется, имеет место. Мой вопрос заключается в следующем:
- Здесь чего-то не хватает? Это действительно возможно? Без использования пароля и без настройки нескольких учетных записей - я не считаю руны реалистичным ответом, поскольку пользователь уже аутентифицировался и не запрашивает ничего, кроме доступа к материалам, для которых ему уже не нужно запрашивать UAC.
- Есть ли какая-то другая архитектура безопасности Windows 7, которую мне не хватает, которая на самом деле позволяет это, но совершенно другим способом?
Я скажу, что мне больше нравится концепция пространства безопасности пользователя, поэтому, возможно, эта проблема вызвана тем, как Windows обрабатывает всю безопасность в первую очередь?
Примечание. Мне известен следующий вопрос: Команда для запуска приложения с правами администратора, но НЕ как администратор (запрос с UAC)
И я попробовал это предложение и встретил ограниченный успех - вкладка совместимости, похоже, исчезла для символических ссылок, и поэтому она не лучше, чем просто щелкнуть правой кнопкой мыши и "работать в качестве администратора". Что, самое запутанное, работает вообще. В качестве заключительного вопроса тогда:
- Как это имеет смысл? У меня есть доступ к большему, непривилегированному профилю, когда я поднимаю консоль? Какие? Это просто постоянная ошибка?
1 ответ
Я думаю, что может быть некоторое недопонимание того, как UAC Windows обрабатывает доступ администратора.
У вас есть учетная запись пользователя, UserA
и Administrator
учетная запись. Оба они считаются "привилегированными" учетными записями и получают административные разрешения, находясь в Administrator
группа.
когда UserA
запускает процесс, вызов для создания процесса принимает токен безопасности, который указывает, должен ли этот процесс быть создан нормально или его нужно повысить. Процесс с повышенными правами вызовет появление запроса UAC и будет вести себя так, как если бы он был частью Administrators
группа. Процесс без повышенных прав будет вести себя так, как будто он имеет все права и разрешения вашего пользователя, кроме тех, которые предоставляются Administrators
группа.
Когда вы помечаете процесс для запуска в режиме администратора (на вкладке совместимости или с помощью Shift + щелчок правой кнопкой мыши, он запускается как ваш пользователь (UserA
) в повышенном режиме.
Это отличается от
runas /User:Administrator
который выполняет процесс не как ваш пользователь, а как Administrator
пользователь, совершенно другой профиль пользователя.
Предполагая, что вы используете привилегированную учетную запись (учетную запись пользователя, которая была добавлена в Administrators
группа):
Когда вы обычно запускаете cmd
(Windows + R, cmd
, Enter), он запускается как процесс без повышений прав под вашей учетной записью. Ваш профиль пользователя должен быть загружен, но вести себя так, как будто он не является членом Administrators
группа. Я думаю, это то, что вы просите, но я не совсем уверен.
Если вы запустите cmd
создав ярлык (не символическую ссылку) и выбрав "Запуск от имени администратора" в параметрах совместимости, или Shift-щелчок правой кнопкой мыши и "Запуск от имени администратора", он все равно будет создан под вашей учетной записью с вашим профилем, но в повышенный режим, который будет иметь полный доступ к системе.
Учитывая это, вы можете уточнить, чего именно вы пытаетесь достичь? Простое нажатие на командную строку должно привести к тому, что по умолчанию она будет работать с наименьшими привилегиями.