Поделиться через


Sudo для Windows

Sudo для Windows — это способ выполнения пользователями команд с повышенными привилегиями (от имени администратора) непосредственно из сеанса консоли без повышения привилегий в Windows.

Ознакомьтесь с объявлением, включающее демонстрационное видео и подробное представление о том, как работает Sudo для Windows.

Предпосылки

Команда Sudo для Windows доступна в Windows 11 версии 24H2 или более поздней. (Проверьте наличие обновлений Windows).

Включение Sudo для Windows

Чтобы включить Sudo для Windows, откройте Система > Дополнительно в Параметрах Windows и установите Включить sudo на Включено.

Включение Sudo

Предупреждение

Sudo для Windows можно использовать как потенциальный вектор эскалации привилегий при активации в определенных конфигурациях. При включении команды sudo на компьютере необходимо учитывать рекомендации по обеспечению безопасности.

Настройка Sudo для Windows

Sudo для Windows в настоящее время поддерживает три различных варианта конфигурации. Конфигурацию можно задать в меню "Дополнительно системы > " или программным способом с помощью командной строки. К параметрам конфигурации относятся следующие параметры:

  • В новом окне (forceNewWindow): forceNewWindow параметр конфигурации по умолчанию используется для Sudo для Windows. Используйте sudo в этой конфигурации для выполнения команды в новом окне. Это похоже на поведение runas /user:admin команды.

  • Ввод закрыт (disableInput): disableInput параметр конфигурации будет выполнять процесс с повышенными привилегиями в текущем окне, но с закрытым вводом. Это означает, что повышенный процесс не сможет получать входные данные из текущего окна консоли. Это полезно для сценариев, когда вы хотите выполнить команду от имени администратора, но не хотите разрешить команде получать входные данные из текущего окна консоли. Этот параметр конфигурации обеспечивает некоторые удобства inline параметра конфигурации при устранении некоторых связанных рисков безопасности.

  • Встроенный (normal): параметр normal конфигурации наиболее похож на поведение sudo в других операционных системах. Эта конфигурация запустит процесс с повышенными привилегиями в текущем окне, и процесс сможет получать входные данные из текущего сеанса консоли. Это полезно для сценариев, когда вы хотите выполнить команду от имени администратора и хотите разрешить команде получать входные данные из текущего окна консоли. Этот параметр конфигурации обеспечивает наибольшее удобство, но этот параметр следует выбрать только в том случае, если вы знакомы с связанными рисками безопасности.

Вы можете выбрать один из этих конфигураций в меню " > Расширенный " системы или изменить конфигурацию программным способом в командной строке с повышенными привилегиями (консоль администрирования), используя следующее:

  • sudo config --enable <configuration_option>

Обновите <configuration_option> на forceNewWindow, disableInput или normal.

Использование Sudo для Windows

Чтобы использовать Sudo для Windows, просто добавьте sudo перед командой, которую вы хотите запустить от имени администратора. Например, чтобы запустить netstat -ab от имени администратора, вы должны выполнить sudo netstat -ab в окне консоли.

Распространенные сценарии разработчика

Ниже приведены некоторые распространенные сценарии, в которых разработчики могут использовать sudo:

  • Редактирование системных файлов: sudo notepad C:\Windows\System32\drivers\etc\hosts
  • Глобальная установка пакетов: sudo npm install -g package-name
  • Запуск средств администрирования: sudo diskpart

Замечание

Для разработки, связанной с такими системными каталогами, как C:\Windows\, рекомендуется использовать среды разработки или альтернативные подходы, когда это возможно. Sudo следует использовать разумно и только если повышенные разрешения действительно необходимы.

Поскольку sudo повышает целевой процесс, чтобы он выполнялся с разрешениями уровня администратора, откроется запрос, предлагающий подтвердить, что вы хотите продолжить.

Соображения безопасности

Существуют риски, связанные с выполнением sudo в конфигурациях закрытых входных данных (disableInput) или встроенных (normal). Вредоносные процессы могут попытаться управлять привилегированным процессом, используя соединение, установленное процессом sudo.exe с непривилегированными правами и процессом sudo.exe с повышенными правами.

Параметр disableInput конфигурации снижает риск, закрывая входной дескриптор. Отключение дескриптора входных данных от текущего окна консоли означает, что неповышенные процессы не могут отправлять входные данные в повышенный процесс.

Параметр inline конфигурации запускает процесс с повышенными привилегиями в текущем окне, и процесс может получать входные данные из текущего сеанса консоли. В этой конфигурации непривилегированный процесс может отправлять входные данные в повышенный процесс в том же окне консоли или получать информацию из выходных данных в текущем окне.

Вопросы и ответы

Как sudo для Windows отличается от существующей runas команды?

Команда sudo предлагает способ быстро запустить команду от имени администратора из текущего контекста командной строки без повышения привилегий и знакома некоторым пользователям, которые переходят с других операционных систем. Эта runas команда предлагает способ запуска программ как любого пользователя, включая администратора, если вы выбрали этот вариант. На данный момент команда Windows sudo не поддерживает выполнение программ от имени других пользователей. Другие ключевые различия между sudo и runas включают:

  • runas позволяет запускать программы от имени других пользователей, включая, но не ограничиваясь, администратором. Эта функция находится в стратегии выполнения команды sudo, но еще не существует.

  • sudo позволяет быстро повысить уровень процесса (от имени администратора):

    • Это можно сделать в новом окне, которое напоминает runas поток администратора.
    • Вы можете подключить повышенный процесс к текущему окну консоли с параметрами конфигурации disableInput и normal. Это не поддерживается с runas.
  • runas может запрашивать у пользователей пароль в командной строке.

  • sudo С помощью функции безопасности контроля учетных записей пользователей (UAC) можно повысить уровень безопасности, предназначенную для защиты операционной системы от несанкционированных изменений с помощью запроса проверки.

Следует рассмотреть конкретный вариант использования и запланировать использование команды, которая лучше всего соответствует вашим потребностям. Также следует учитывать последствия для безопасности запуска sudo в disableInput режимах и normal режимах. Параметр конфигурации по умолчанию forceNewWindow рекомендуется, если вы не знакомы и не знакомы с рисками, связанными с другими sudo конфигурациями.

Репозиторий Sudo для Windows открытый код

Sudo для Windows открытый код и приветствует ваши вклады и отзывы. Исходный код для Sudo для Windows на сайте GitHub можно найти.

Дополнительная функциональность

Если вы ищете дополнительные функциональные возможности, которые не предоставляет Sudo для Windows, ознакомьтесь с gsudo от , которое имеет ряд дополнительных функций и параметров конфигурации, или ознакомьтесь с другими решениями сообщества.