Sudo для Windows
Sudo для Windows — это новый способ выполнения пользователей команд с повышенными привилегиями (от имени администратора) непосредственно из незавершенного сеанса консоли в Windows.
Ознакомьтесь с объявлением, включающее демонстрационное видео и подробное представление о том, как работает Sudo для Windows.
Необходимые компоненты
Для использования команды Sudo для Windows 11 Insider Preview 26052 или более поздней версии необходимо использовать команду Sudo для Windows. (Проверьте наличие обновлений Windows). Присоединяйтесь к программе предварительной оценки Windows.
Примечание.
Sudo для Windows еще недоступен для Windows 10, но может быть в будущем.
Включение Sudo для Windows
Чтобы включить Sudo для Windows, откройте Settings > For Developers
и установите для параметра Enable sudo to On.
Предупреждение
Sudo для Windows можно использовать в качестве потенциального эскалации вектора привилегий при включении в определенных конфигурациях. При включении команды sudo на компьютере необходимо учитывать рекомендации по обеспечению безопасности.
Настройка Sudo для Windows
Sudo для Windows в настоящее время поддерживает три различных варианта конфигурации. Конфигурацию можно задать в Settings > For Developers
меню или программным способом с помощью командной строки. К параметрам конфигурации относятся следующие параметры:
В новом окне (
forceNewWindow
):forceNewWindow
параметр конфигурации по умолчанию используется для Sudo для Windows. Используйтеsudo
эту конфигурацию для выполнения команды в новом окне. Это похоже на поведениеrunas /user:admin
команды.Закрытые входные данные (
disableInput
):disableInput
параметр конфигурации будет выполнять процесс с повышенными привилегиями в текущем окне, но с закрытым дескриптором ввода. Это означает, что повышенные привилегии не смогут получать входные данные из текущего окна консоли. Это полезно для сценариев, когда вы хотите выполнить команду от имени администратора, но не хотите разрешить команде получать входные данные из текущего окна консоли. Этот параметр конфигурации обеспечивает некоторые удобстваinline
параметра конфигурации при устранении некоторых связанных рисков безопасности.Встроенный (
normal
): параметрnormal
конфигурации наиболее похож на поведение sudo в других операционных системах. Эта конфигурация запустит процесс с повышенными привилегиями в текущем окне, и процесс сможет получать входные данные из текущего сеанса консоли. Это полезно для сценариев, когда вы хотите выполнить команду от имени администратора и хотите разрешить команде получать входные данные из текущего окна консоли. Этот параметр конфигурации обеспечивает наибольшее удобство, но этот параметр следует выбрать только в том случае, если вы знакомы с связанными рисками безопасности.
Вы можете выбрать один из этих конфигураций в Settings > For Developers
меню или изменить конфигурацию программным способом в командной строке с повышенными привилегиями (консоль администрирования), используя следующее:
sudo config --enable <configuration_option>
Обновите либо <configuration_option>
forceNewWindow
disableInput
, либо normal
.
Использование Sudo для Windows
Чтобы использовать Sudo для Windows, просто добавьте sudo
команду, которую вы хотите запустить от имени администратора. Например, для запуска от имени администратора вы будете выполняться netstat -ab
sudo netstat -ab
в окне консоли.
Так как sudo
повышение целевого процесса для запуска с разрешениями на уровне администратора откроется запрос на проверку того, что вы хотите продолжить.
Соображения безопасности
Существуют риски, связанные с выполнением sudo в конфигурациях закрытых входных данных (inputClosed
) или встроенных (normal
). Вредоносные процессы могут пытаться управлять повышенными привилегиями, используя подключение, установленное sudo.exe с повышенными привилегиями и повышенными sudo.exe процесса.
Параметр inputClosed
конфигурации снижает риск, закрывая входной дескриптор. Отключение дескриптора входных данных от текущего окна консоли означает, что неуверенные процессы не могут отправлять входные данные в повышенный уровень.
Параметр inline
конфигурации запускает процесс с повышенными привилегиями в текущем окне, и процесс может получать входные данные из текущего сеанса консоли. Незавершенный процесс может отправлять входные данные в повышенные привилегии в одном окне консоли или получать сведения из выходных данных в текущих окнах этой конфигурации.
Вопросы и ответы
Как sudo для Windows отличается от существующей runas
команды?
Команда sudo
предлагает способ быстро повысить уровень команды от имени администратора из текущего контекста командной строки безответного режима и знаком с некоторыми пользователями, поступающими из других операционных систем. Эта runas
команда предлагает способ запуска программ как любого пользователя, включая администратора, если вы выбрали этот вариант. На данный момент sudo
команда в Windows не поддерживает выполнение программ в качестве других пользователей. Другие ключевые различия между sudo
и runas
включают:
runas
позволяет запускать программы от имени других пользователей, в том числе не ограничиваться правами администратора. Эта функция находится в стратегии выполнения команды sudo, но еще не существует.sudo
позволяет быстро повысить уровень процесса (от имени администратора):- Это можно сделать в новом окне, которое напоминает
runas
поток администратора. - Вы можете подключить процесс с повышенными привилегиями к текущему окну консоли с
disableInput
параметрами конфигурации иnormal
параметрами конфигурации. Это не поддерживается.runas
- Это можно сделать в новом окне, которое напоминает
runas
может запрашивать у пользователей пароль в командной строке.sudo
С помощью функции безопасности контроля учетных записей пользователей (UAC) можно повысить уровень безопасности, предназначенную для защиты операционной системы от несанкционированных изменений с помощью запроса проверки.
Следует рассмотреть конкретный вариант использования и запланировать использование команды, которая лучше всего соответствует вашим потребностям. Также следует учитывать последствия для безопасности запуска sudo в inputClosed
режимах и normal
режимах. Параметр конфигурации по умолчанию forceNewWindow
рекомендуется, если вы не знакомы и не знакомы с рисками, связанными с другими sudo
конфигурациями.
Репозиторий Sudo для Windows открытый код
Sudo для Windows открытый код и приветствует ваши вклады и отзывы. Исходный код для Sudo для Windows на сайте GitHub можно найти.
Дополнительная функциональность
Если вы ищете дополнительные функциональные возможности, которые не предоставляют Sudo для Windows, ознакомьтесь с gsudo Gerardo Grignoli с рядом дополнительных функций и параметров конфигурации или ознакомьтесь с другими решениями сообщества.
Windows developer