Microsoft добавит в windows 11 поддержку unix команд sudo

Microsoft добавил в Windows 11 поддержку Unix-команд sudo

Microsoft внедрит в Windows 11 поддержку команд sudo, использующихся в других системах на базе Unix, вроде Linux и macOS. С ее помощью можно запускать приложения с повышенными привилегиями безопасности и выполнять задачи администрирования системы. Такое нововведение символизирует углубление интеграции Windows с Linux, также открывает новые возможности для разработчиков.

Как сообщает 3DNews, в проекте, находящемся на стадии разработки и тестирования последних Canary-сборок Windows 11, предусматривается три режима запуска команд: в новом окне, с отключенным вводом и встроенный режим. Для воспроизведения функционала традиционной команды sudo используется именно встроенный режим, тем самым он позволяет выполнять команды с повышенными привилегиями без необходимости запуска отдельной сессии.

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

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

В свою очередь, добавление команды sudo в Windows 11 является шагом Microsoft в направлении интеграции своей ОС с Linux, начиная от включения полноценного Linux-ядра в Windows 10, интеграции Bash-оболочки и встроенного OpenSSH, заканчивая предложениями Linux-дистрибутивов Ubuntu, SUSE и Fedora в Windows.

Microsoft добавит в windows 11 поддержку unix команд sudo

Если человек настраивает сервер, это не новость; новость – если сервер настраивает человека.

Новый подкаст от Timeweb

логотип 3DNews


Самое интересное в обзорах

 Источник изображения: 3dnews.ru

Источник изображения: 3dnews.ru

Ключ к пониманию этого инновационного шага лежит в особенностях реализации команды sudo в рамках Windows. Проект, находящийся в стадии активной разработки и тестирования в последних Canary-сборках Windows 11, предусматривает три режима запуска команд: в новом окне, с отключённым вводом и встроенный режим. Именно встроенный режим наиболее тесно воспроизводит функциональность традиционной команды sudo, позволяя выполнять команды с повышенными привилегиями без необходимости запуска отдельной сессии.

Джорди Адуми (Jordi Adoumie), продукт-менеджер Microsoft, подчеркнул, что внедрение команды sudo является ответом на запросы разработчиков, стремящихся к более гладкому и эффективному процессу работы с инструментами разработки. В ближайшие месяцы компания планирует не только расширить документацию по использованию sudo в Windows, но и предоставить дополнительные сведения о безопасности использования этой команды в различных конфигурациях.

 Sudo можно будет контролировать в настройках разработчика в будущей версии Windows 11 (источник изображения: Microsoft)

Sudo можно будет контролировать в настройках разработчика в будущей версии Windows 11 (источник изображения: Microsoft)

Появление кода проекта sudo на GitHub является ещё одним шагом Microsoft к поддержке открытого исходного кода и тесному сотрудничеству с разработчиками. Это отражает стремление компании к прозрачности и вовлечению сообщества в усовершенствование инструментов, которые формируют будущее разработки ПО.

Добавление команды sudo в Windows 11 — это очередная инициатива Microsoft по интеграции своей ОС с Linux, начиная с включения полноценного Linux-ядра в Windows 10, интеграции Bash-оболочки, встроенного OpenSSH, до предложения Linux-дистрибутивов Ubuntu, SUSE и Fedora в Windows.

Эти шаги не только стирают границы между различными ОС, но и открывают перед разработчиками безграничные возможности для создания, тестирования и развёртывания своих приложений в универсальной и гибкой среде. В целом, интеграция Unix-команды sudo в Windows 11 показывает готовность Microsoft к интеграции лучших практик и инструментов, зарекомендовавших себя в мире Linux и Unix.

:/>  Diagnostics tracking service windows 7 - Вэб-шпаргалка для интернет предпринимателей!





Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Самые обсуждаемые публикации

В Windows 11 в обозримом будущем может появиться встроенная поддержка выполнения команд с автоматическим кратковременным повышением прав до суперпользователя. В Linux есть похожая команда – Sudo, и именно она может быть внедрена в Windows 11 в одной из ближайших сборок.

Была Windows, стал Linux

Пример использования Sudo в Linux

Microsoft, судя по всему, решила не отставать от конкурентов. Поддержка Sudo будет добавлена в привычный инструментарий Windows – в командную строку выполнения команд и оболочку PowerShell.

Никаких подробностей

Как именно будет функционировать Sudo в составе Windows с использованием ее посредством командной строки и утилиты PowerShell, к моменту выхода материала известно не было. Возможно, поддержка команды станет частью именно самой Windows 11, или же она каким-либо образом будет связана с подсистемой Windows Subsystem for Linux, появившейся весной 2019 г. и позволяющей запускать Linux-приложения и даже Linux-дистрибутивы непосредственно из-под Windows.

Microsoft хранит молчание, бета-тестеры, имеющие доступ к ранним сборкам Windows – тоже. Нововведение, похоже, достанется только Windows 11 – ее предшественница (Windows 10), явившая миру подсистему WSL, с весны 2023 г. не получает обновления функциональности.

Код уже готов

Зачем Microsoft понадобилась поддержка Sudo в Windows, пока неясно

Xeno утверждает, что нашел в коде следующие строки: SystemSettings_Developer_Mode_Setting_Sudo, Enable sudo, Enable the sudo command и Configure how sudo runs applications. Как именно он их обнаружил, Xeno не уточнил.

Откуда в Windows суперпользователь

Если предположить, что поддержку Sudo Microsoft встроит в Windows 11 без связи с подсистемой WSL, то, получится, что она продублирует уже имеющуюся в системе аналогичную возможность. В современных Windows есть пользователь «Администратор», учетная запись которого по умолчанию отключена. «Администратор» обладает существенно большим набором прав в системе по сравнению с обычным пользователем, а в Windows есть опция запуска любой программы от имени «Администратора».

Все уже придумано заранее

В утилите PowerShell аналогичное действие выполняется при помощи команды start-process. Пример: start-process “C:\Program Files\Google\Chrome\Application\chrome.exe” –verb runas.

Олег Лексин, начальник ИТ-службы Fix Price в интервью CNews: В первую очередь ритейлерам не хватает российской ERP-системы

Microsoft добавит в windows 11 поддержку unix команд sudo

Также можно вручную активировать в системе профиль «Администратор» использовать его в качестве основной учетной записи.

Активированная учетная запись «Администратор» в Windows 11 22H2

В этом случае команда «запустить от имени Администратора» больше никогда не потребуется.


Время на прочтение

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

:/>  Восстановление жесткого диска victoria инструкция

В ней вы найдете основные команды для работы в терминале Windows, Linux и macOS. Также описаны базовые команды по работе с Systemctl, VirtualEnv и Git.

Основные команды

Удаление папки

rmdir /s /q папка_для_удаления

Linux и macOS:

rm -rf папка_для_удаления

Создание папки

mkdir новая_папка

Linux и macOS:

mkdir новая_папка

Создание виртуального окружения python через venv

python -m venv venv

Linux и macOS:

python3 -m venv venv

Виртуальное окружение python через venv

venv на Windows идет “из коробки”. Для установки на Linux и macOS возможно потребуется ввести команды:

sudo apt install -y python3-venv
sudo apt install -y build-essential libssl-dev libffi-dev python3-dev

Активация на Windows:

venv\Scripts\activate

Активация на Linux и macOS:

source venv/bin/activate

Деактивация (Linux, macOS и Windows):

deactivate

Команды Git

Инициация Git репозитория

git init

Привязка удаленного репозитория

git remote add origin ссылка_на_репозиторий

Отвязываем репозиторий

git remote rm origin ссылка_на_репозиторий

Привязываем другой репозиторий

git remote set-url origin git@github.com:username/projectname.git

Установка ветки по умолчанию

git config --global init.defaultBranch main

Клонирование репозитория

git clone ссылка_на_репозиторий

Просмотр состояния репозитория

git status

Добавление файлов в индекс

git add имя_файла_или_папки

Коммит изменений

git commit -m "сообщение коммита"

Обновление локального репозитория (pull)

git pull origin main

Отправка изменений в удаленный репозиторий (push)

git push origin main

Создание новой ветки и переключение на нее

git checkout -b новая_ветка

Просмотр списка веток

git branch

Переключение на существующую ветку

git checkout имя_ветки

Слияние веток

git merge имя_ветки

Создание репозитория на GitHub через командную строку

Для этого нужно использовать GitHub CLI. Сначала установите его, а затем выполните следующие команды:

Установка GitHub CLI

Windows (через winget):

winget install --id GitHub.cli

macOS (через Homebrew):

brew install gh

Linux (через пакетный менеджер):

Пример для Ubuntu:

sudo apt install gh

Авторизация в GitHub CLI

gh auth login

Создание репозитория

gh repo create имя_репозитория --public
gh repo create имя_репозитория --private

Другие полезные команды для Shell

Просмотр содержимого текущей директории

dir

Linux и macOS:

ls

Переключение директории

cd путь_к_папке

Копирование файлов

copy исходный_файл целевой_файл

Linux и macOS:

cp исходный_файл целевой_файл

Перемещение файлов

move исходный_файл целевой_файл

Linux и macOS:

mv исходный_файл целевой_файл

Вывод содержимого файла

type имя_файла

Linux и macOS:

cat имя_файла

Создание и редактирование файлов

echo текст > имя_файла
notepad имя_файла

Linux и macOS:

echo "текст" > имя_файла
nano имя_файла

Блок терминальных команд для Ubuntu (использую чаще всего)

Обновление и установка программного обеспечения

  1. Обновление списка пакетов

    sudo apt update

    Эта команда обновляет список доступных пакетов и их версий, но не устанавливает и не обновляет никаких пакетов.

  2. Обновление установленных пакетов

    sudo apt upgrade

    Эта команда обновляет все установленные пакеты до самых новых версий, которые доступны в репозиториях.

  3. sudo apt install <имя_пакета>

    Эта команда устанавливает указанный пакет. Например, чтобы установить браузер Firefox, выполните:

    sudo apt install firefox
  4. sudo apt remove <имя_пакета>

    Эта команда удаляет указанный пакет, но сохраняет его конфигурационные файлы.

  5. Полное удаление пакетов

    sudo apt purge <имя_пакета>

    Эта команда удаляет указанный пакет вместе с его конфигурационными файлами.

  6. Очистка ненужных пакетов

    sudo apt autoremove

    Эта команда удаляет ненужные пакеты, которые были установлены как зависимости и больше не требуются.

:/>  Команда для синхронизации времени с сервером

Управление системными службами

  1. sudo systemctl start <имя_службы>

    Эта команда запускает указанную службу. Например:

    sudo systemctl start apache2
  2. sudo systemctl stop <имя_службы>
  3. sudo systemctl restart <имя_службы>
  4. Проверка статуса службы

    sudo systemctl status <имя_службы>
  5. Включение службы при загрузке

    sudo systemctl enable <имя_службы>
  6. Отключение службы при загрузке

    sudo systemctl disable <имя_службы>

Не забудьте добавить эту шпаргалку в закладки и оценить ее лайком, если она оказалась полезной для вас.

Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку

Время на прочтение

Для пользователя Linux командная строка Windows кажется чем-то непривычным и неудобным. С появлением WSL казалось, что проблема использования Bash решена, но запуск виртуальной машины требует времени, да и пути в WSL отличаются от Windows. Плюс скорость файловых операций на виртуальной машине хуже.

Ещё есть возможность использовать Bash через MSYS2, но мне хотелось найти что-то более компактное и легковесное, а также простое в настройке и установке.

Так как я часто использовал Linux на роутерах, то познакомился с BusyBox, набор UNIX-утилит командной строки, используемой в качестве основного интерфейса во встраиваемых операционных системах. Оказалось, есть версия BusyBox для Windows. В 2020 году появился Windows Terminal, а в нем есть возможность создавать вкладку с запуском конкретной программы.

Пример вкладки Bash
Пример вкладки Bash

Сложив эти два факта, пришла очевидная мысль, использовать BusyBox, содержащий в себе Bash, в Windows Terminal как отдельную консоль.

Список программ входящих в BusyBox
Список программ входящих в BusyBox
Профиль для Bash
Профиль для Bash

У этого подхода был один минус, при запуске терминала не из конкретной папки, а из ярлыка на рабочем столе или из панели задач.

Запуск терминала из конкретной папки
Запуск терминала из конкретной папки

То адрес рабочей папки был C:/Windows/System32, и если случайно ввести команду удаления или создания файла, то мы портим важную системную папку. Обойти возможно используя аналог .bashrc или /etc/profile или .profile.

Microsoft добавит в windows 11 поддержку unix команд sudo

Но просто создать файл .profile мало, BusyBox для Windows их не считывает, для этого необходимо добавить путь к этому файлу в  ENV в “Переменные среды”.

Microsoft добавит в windows 11 поддержку unix команд sudo

Теперь мы можем написать скрипт, который будет настраивать рабочую директорию при запуске консоли.

#!/bin/bash

domain=$(echo $PWD | tr '[:upper:]' '[:lower:]')

if [ $domain = "c:/windows/system32" ]; then
    cd $HOME
fi

Теперь если мы запустили терминал из ярлыка или панели задач, то рабочей директорией по умолчанию становится домашняя папка пользователя, а если мы запускаем из конкретной папки то, она и становится рабочей директорией.

Мы получили Bash в Windows Terminal с удобной начальной директорией.

Оставьте комментарий