Windows 11 Sudo для Windows

akok

Команда форума
Администратор
Ассоциация VN
Сообщения
25,311
Решения
5
Реакции
13,844

Что это.​

Sudo для Windows представляет собой новый метод выполнения команд с повышенными привилегиями пользователей непосредственно из незавершенного сеанса консоли в операционной системе Windows. Проект Sudo для Windows был опубликован на GitHub под открытой лицензией MIT12. Это не является портом или форком проекта sudo Unix/Linux, а представляет собой реализацию концепции sudo, специфическую для Windows.

Требования​

Windows 11 Insider Preview 26052 или более поздние версии. Появится ли Sudo на младших версиях ОС, возможно.

Как включить Sudo для Windows​

1. Откройте панель разработчика Параметры => Система => Для разработчиков
2. Переведите ползунок в пункте меню Включить sudo
1708437608029.png


Настройки поведения Sudo для Windows​

Для настройки разверните пункт меню Включить sudo и выберете удобное поведение команды.
1708437722834.png


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

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

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

Или при помощи командной строки
sudo config --enable <configuration_option>

configuration_option может принимать значения forceNewWindow disableInput, либо normal.

Как использовать:​

Как и на Unix/Linux или как аналог runas (что является ближе по духу).

force-new-window.gif

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

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

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

Безопасность использования​

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

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

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

По мотивам
 
Последнее редактирование:

Расширение функционала sudo или gsudo​

gsudo — sudo эквивалент для Windows, с пользовательским интерфейсом, аналогичным оригинальному sudo для Unix/Linux. Позволяет запускать команду с повышенными разрешениями или повышать права текущей оболочки в текущем или новом окне консоли.

Посмотреть вложение gsudo.mp4

Системные требования​

gsudo работает на Win7 SP1 и выше. Некоторые функции могут работать только в Windows 10/11, например повышение прав TrustedInstaller.


Как установить​

  • Используя Scoop: scoop install gsudo
  • Используя WinGet: winget install gerardog.gsudo
  • Используя Chocolatey: choco install gsudo
  • Используя скрипт PowerShell:
PowerShell:
PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; [Net.ServicePointManager]::SecurityProtocol = 'Tls12'; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
  • Портабельная версия:
    • Загрузите gsudo.portable.zipпоследнюю версию
    • Извлеките папку, соответствующую архитектуре вашего процессора (x64, x86 или Arm64), из zip-файла в подходящий каталог на вашем компьютере.
    • При желании добавьте этот каталог в переменную среды PATH вашей системы, если он еще не доступен.

Как пользоваться​

gsudo [options] # Повышает привилегии текущей оболочки
gsudo [options] {command} [args] # Запускает {command} с повышенными правами
gsudo cache [on | off | help] # Запускает/останавливает сеанс кэширования учетных данных. (меньше всплывающих окон UAC)
gsudo status [--json | filter ] # Показывает текущего пользователя, статус кэша и консоли.
gsudo !! # Повторно запускает последнюю команду от имени администратора. (Ваш опыт может отличаться)

Опции для нового окна:
-n | --new # Запускает команду в новой консоли/окне (и сразу возвращает управление).
-w | --wait # При запуске в новой консоли ожидает завершения команды.
--keepShell # После выполнения команды оставляет открытой повышенную оболочку.
--keepWindow # После запуска команды в новой консоли запрашивает нажатие клавиши перед закрытием консоли/окна.

Опции безопасности:
-u | --user {usr} # Запускает от имени указанного пользователя. Запрашивает пароль. Для локальных администраторов показывает окно UAC, если не указано '-i Medium'.
-i | --integrity {v} # Устанавливает уровень целостности: Untrusted, Low, Medium, MediumPlus, High (по умолчанию), System
-s | --system # Запускает от имени учетной записи Local System (NT AUTHORITY\SYSTEM).
--ti # Запускает от имени учетной записи NT SERVICE\TrustedInstaller
-k # Удаляет все кэшированные учетные данные. При следующем запуске gsudo появится окно UAC.

Опции, связанные с оболочкой:
-d | --direct # Пропускает обнаружение оболочки. Предполагает оболочку CMD или CMD {команда}.
--loadProfile # При повышении команд PowerShell загружает профиль пользователя.

Другие опции:
--loglevel {val} # Устанавливает минимальный уровень журналирования: All, Debug, Info, Warning, Error, None
--debug # Включает режим отладки.
--copyns # Подключает сетевые диски к повышенному пользователю. Предупреждение: подробный вывод, интерактивно запрашивает учетные данные
--copyev # (устарело) Копирует переменные среды в повышенный процесс. (не требуется в режиме обычной консоли по умолчанию)

Более подробно, с настройками, можно ознакомиться в официальном репозитории
 
Назад
Сверху Снизу