Udostępnij przez


Sudo dla systemu Windows

Sudo dla systemu Windows to nowy sposób uruchamiania poleceń z podwyższonym poziomem uprawnień (jako administrator) bezpośrednio ze zwykłej sesji konsoli w systemie Windows.

Przeczytaj ogłoszenie, które zawiera pokaz wideo i szczegółowe informacje na temat działania programu Sudo dla systemu Windows.

Wymagania wstępne

Polecenie Sudo dla systemu Windows jest dostępne w systemie Windows 11 w wersji 24H2 lub nowszej. (Sprawdź dostępność aktualizacji systemu Windows).

Uwaga / Notatka

Sudo dla systemu Windows nie jest jeszcze dostępny dla systemu Windows 10, ale może być w przyszłości.

Jak włączyć program Sudo dla systemu Windows

Aby włączyć program Sudo dla systemu Windows, otwórz Settings > System > For Developers i ustaw opcję Włącz sudo na Włączone.

Włącz program Sudo

Ostrzeżenie

Program Sudo dla systemu Windows może służyć jako potencjalna eskalacja wektora uprawnień po włączeniu w niektórych konfiguracjach. Podczas włączania polecenia sudo na maszynie należy pamiętać o zagadnieniach dotyczących zabezpieczeń .

Jak skonfigurować program Sudo dla systemu Windows

Program Sudo dla systemu Windows obsługuje obecnie trzy różne opcje konfiguracji. Konfigurację można ustawić z Settings > For Developers menu lub programowo przy użyciu wiersza polecenia. Opcje konfiguracji obejmują:

  • W nowym oknie (forceNewWindow): forceNewWindow opcja konfiguracji jest domyślną opcją konfiguracji sudo dla systemu Windows. Użyj sudo w tej konfiguracji, aby uruchomić polecenie w nowym oknie. Jest to podobne do działania polecenia runas /user:admin.

  • Wejście zamknięte (disableInput): Opcja konfiguracji disableInput uruchomi proces z uprawnieniami administratora w bieżącym oknie, ale z zamkniętym uchwytem wejściowym. Oznacza to, że proces z podwyższonym poziomem uprawnień nie będzie mógł odbierać danych wejściowych z bieżącego okna konsoli. Jest to przydatne w scenariuszach, w których chcesz uruchomić polecenie jako administrator, ale nie chcesz zezwalać na odbieranie danych wejściowych z bieżącego okna konsoli. Ta opcja konfiguracji zapewnia pewną wygodę inline opcji konfiguracji przy jednoczesnym ograniczaniu niektórych powiązanych zagrożeń bezpieczeństwa.

  • Wbudowane (normal): normal opcja konfiguracji jest najbardziej podobna do zachowania programu sudo w innych systemach operacyjnych. Ta konfiguracja spowoduje uruchomienie procesu z podwyższonym poziomem uprawnień w bieżącym oknie, a proces będzie mógł odbierać dane wejściowe z bieżącej sesji konsoli. Jest to przydatne w scenariuszach, w których chcesz uruchomić polecenie jako administrator i chcesz zezwolić na odbieranie danych wejściowych z bieżącego okna konsoli. Ta opcja konfiguracji zapewnia największą wygodę, ale należy wybrać tę opcję tylko wtedy, gdy znasz powiązane zagrożenia bezpieczeństwa.

Możesz wybrać spośród tych konfiguracji z Settings > For Developers menu lub programowo zmienić konfigurację w wierszu polecenia z podwyższonym poziomem uprawnień (konsola administracyjna), używając:

  • sudo config --enable <configuration_option>

Przeprowadź aktualizację <configuration_option> do forceNewWindow, disableInput lub normal.

Jak używać programu Sudo dla systemu Windows

Aby użyć programu Sudo w systemie Windows, wystarczy dodać sudo przed poleceniem, które chcesz uruchomić jako administrator. Aby na przykład uruchomić netstat -ab jako administrator, uruchom sudo netstat -ab w oknie konsoli.

Typowe scenariusze dla deweloperów

Oto kilka typowych scenariuszy, w których deweloperzy mogą używać programu sudo:

  • Edytowanie plików systemowych: sudo notepad C:\Windows\System32\drivers\etc\hosts
  • Globalne instalowanie pakietów: sudo npm install -g package-name
  • Uruchamianie narzędzi administracyjnych: sudo diskpart

Uwaga / Notatka

W przypadku prac programistycznych obejmujących katalogi systemowe, takie jak C:\Windows\, rozważ użycie środowisk deweloperskich lub alternatywnych metod, jeśli jest to możliwe. Sudo należy używać rozsądnie i tylko wtedy, gdy podwyższone uprawnienia są naprawdę niezbędne.

Ponieważ sudo podnosi poziom docelowego procesu do uruchomienia z uprawnieniami na poziomie administratora, zostanie otwarty monit z prośbą o sprawdzenie, czy chcesz kontynuować.

Zagadnienia dotyczące zabezpieczeń

Istnieją zagrożenia związane z uruchamianiem programu sudo w konfiguracjach danych wejściowych zamkniętych (disableInput) lub wbudowanych (normal). Istnieje możliwość, aby złośliwe procesy próbowały manipulować procesem z podwyższonym poziomem uprawnień przy użyciu połączenia ustanowionego przez proces o niepodwyższonym poziomie uprawnień sudo.exe oraz proces z podwyższonym poziomem uprawnień sudo.exe.

Opcja disableInput konfiguracji ogranicza ryzyko, zamykając uchwyt wejściowy. Odłączenie uchwytu wejściowego od bieżącego okna konsoli oznacza, że procesy niepodniesione nie mogą wysyłać danych wejściowych do procesu z podwyższonym poziomem uprawnień.

Opcja inline konfiguracji uruchamia proces z podwyższonym poziomem uprawnień w bieżącym oknie, a proces może odbierać dane wejściowe z bieżącej sesji konsoli. Niezauprawniony proces może wysyłać dane wejściowe do procesu z podwyższonym poziomem uprawnień w tym samym oknie konsoli lub uzyskać informacje z danych wyjściowych w bieżącym oknie w tej konfiguracji.

Często zadawane pytania

Czym różni się program Sudo dla systemu Windows od istniejącego runas polecenia?

Polecenie sudo oferuje sposób szybkiego podniesienia poziomu uprawnień polecenia jako administrator z bieżącego nieuprawnionego kontekstu wiersza polecenia i jest znany niektórym użytkownikom pochodzącym z innych systemów operacyjnych. Polecenie runas oferuje sposób uruchamiania programów jako dowolny użytkownik, w tym administratora, jeśli tego sobie życzysz. W tej chwili polecenie sudo w systemie Windows nie obsługuje uruchamiania programów jako inni użytkownicy. Inne kluczowe różnice między elementami sudo i runas obejmują:

  • runas umożliwia uruchamianie programów jako inni użytkownicy, w tym nie tylko jako administrator. Ta funkcja znajduje się w harmonogramie działania polecenia sudo, ale jeszcze nie istnieje.

  • sudo umożliwia szybkie podniesienie poziomu procesu (jako administrator):

    • Możesz wybrać, by to zrobić w nowym oknie, które przypomina runas proces administratora.
    • Możesz wybrać połączenie procesu o podwyższonych uprawnieniach z bieżącym oknem konsoli, używając opcji konfiguracji disableInput i normal. Nie jest to obsługiwane w programie runas.
  • runas może monitować użytkowników o podanie hasła w wierszu polecenia.

  • sudo Można podnieść uprawnienia tylko za pośrednictwem funkcji zabezpieczeń Kontrola konta użytkownika (UAC), która została zaprojektowana w celu ochrony systemu operacyjnego przed nieautoryzowanymi zmianami, używając do tego monitu weryfikacyjnego.

Należy wziąć pod uwagę konkretny przypadek użycia i zaplanować użycie polecenia, które najlepiej spełnia Twoje potrzeby. Należy również wziąć pod uwagę implikacje bezpieczeństwa uruchamiania sudo w trybach disableInput i normal. forceNewWindow Domyślna opcja konfiguracji jest zalecana, chyba że znasz i jesteś zaznajomiony z ryzykiem związanym z innymi sudo konfiguracjami.

Repozytorium open source Sudo dla Windows

Program Sudo dla systemu Windows jest oprogramowaniem open source i z zadowoleniem przyjmuje twoje wkłady i opinie. Kod źródłowy programu Sudo dla systemu Windows można znaleźć w witrynie GitHub.

Dodatkowe funkcje

Jeśli szukasz dodatkowych funkcji, które sudo dla systemu Windows nie udostępnia, zapoznaj się z gsudo, w Gerardo Grignoli którym znajduje się wiele dodatkowych funkcji i opcji konfiguracji lub zapoznaj się z innymi rozwiązaniami ze społeczności.