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


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

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

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> forceNewWindowdisableInput, либо 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 с рядом дополнительных функций и параметров конфигурации или ознакомьтесь с другими решениями сообщества.