Команда sudo, известная пользователям Linux, теперь доступна и в Windows. Она позволяет выполнять программы с правами другого пользователя — обычно суперпользователя или администратора/root — без необходимости получать административные права для всей системы. Это особенно полезно для административных задач, требующих повышенных привилегий, без необходимости постоянно входить и выходить из системы под учетной записью администратора или root-пользователя. Теперь эта удобная команда внедряется и в Windows.
Использование sudo повышает общую безопасность системы двумя способами: во-первых, уменьшая необходимость входа с полной учетной записью администратора с неограниченными привилегиями, и во-вторых, создавая подробные журналы всех команд, использованных с sudo. Типичные примеры использования sudo включают установку программных пакетов и настройку разрешений безопасности. Благодаря тонкой настройке контроля и ведению журналов, sudo обеспечивает выполнение административных задач безопасно и прозрачно.
Sudo дополняет RunAs
Microsoft признала преимущества sudo и теперь вводит команду в системы Windows 11 с обновлением версии 24H2. Пока не ясно, получат ли Windows Server 2022/2025 также sudo, но это маловероятно. Названный Sudo for Windows, исходный код доступен на Github.
Если вы используете учетную запись администратора, у вас уже есть административные права, поэтому sudo мало полезен. Кроме того, в Windows уже существует команда RunAs, которая позволяет запускать команду в командной строке от имени другого пользователя. Однако RunAs неудобен и не так эффективен, как sudo.
Команда RunAs используется в формате runas /user программа
, где необходимо ввести пароль указанного пользователя. Например, runas /user cmd
запускает командную строку с правами администратора. RunAs позволяет вам (Пользователь A) запустить программу в контексте пользователя B. Иными словами, Пользователь A может запустить приложение так, как если бы он был Пользователем B, и соответствующее приложение будет работать полностью в контексте Пользователя B, а НЕ в контексте Пользователя A с повышенными правами. В сравнении, команда sudo предлагает схожую функциональность, но с некоторыми различиями в применении и администрировании. На данный момент невозможно с помощью sudo запустить программу так, как если бы вы были кем-то другим; sudo позволяет выполнять команды от имени суперпользователя/администратора/root. (Однако Microsoft планирует добавить эту функциональность.) В то время как RunAs позволяет временно повысить права для конкретной программы или скрипта, sudo предоставляет более обширный и гибкий контроль над правами и ведением журналов. Команда sudo также поддерживает делегирование конкретных команд без полных прав администратора, что позволяет более точно контролировать администрирование системы. В конечном итоге, sudo предлагает больше возможностей, чем RunAs. Однако Microsoft пока реализовала очень мало функций, доступных в оригинальной команде sudo в Windows, поэтому Sudo for Windows в настоящее время имеет мало общего с sudo в Linux.
Включение sudo в Windows 11 версии 24H2
Sudo не включен по умолчанию на всех системах, что может измениться в будущем. Хотя Sudo for Windows предустановлен начиная с версии Windows 24H2, вам придется включить его самостоятельно. Когда вы вводите команду sudo
в командной строке, терминале или PowerShell, Windows 11 версии 24H2 сообщает, что команда должна быть сначала активирована. В настройках Windows 11 соответствующий параметр можно найти в разделе Система > Для разработчиков под названием Включить Sudo. Перед окончательной активацией необходимо подтвердить через сообщение Контроля учетных записей пользователей. Вы также можете активировать Sudo for Windows с помощью самой команды sudo
, где вам доступны различные опции:
- В новом окне (forceNewWindow)
- В том же окне (normal)
- Отключить ввод (disableInput)