SUA – Subsystem for UNIX-based Applications (pol. Podsystem aplikacji systemu UNIX) zwany niegdyś SFU – Windows Services for UNIX (pol. Usługi Windows dla systemu UNIX) to pakiet aplikacji stworzony przez Microsoft do instalacji w środowisku Windows, zapewniający narzędzia znane z systemów Unix / Linux.
W przypadku Windows 7 musimy posiadać wersję Ultimate lub Enterprise. Instalację zaczynamy od włączenia Podsystemu aplikacji systemu UNIX. W tym celu przechodzimy do Panelu sterowania -> Programy i funkcje -> Włącz lub wyłącz funkcje systemu Windows i zaznaczamy Podsystem aplikacji systemu UNIX.
Następnie ze strony Microsoftu ściągamy właściwą dla architektury naszego systemu paczkę: Utilities and SDK for UNIX-based Applications_AMD64.exe
lub Utilities and SDK for UNIX-based Applications_X86.exe
i instalujemy ją, co ze względu na rozmiar trochę potrwa. Wybieramy opcję Custom Installation (pol. Instalacja użytkownika), co pozwoli nam zaznaczyć dodatkowe komponenty. Zaznaczamy dodatkowo: SVR-5 Utilities, dzięki czemu zainstalujemy programy charakterystyczne dla UNIX System V, GNU Utilities – programy znane z GNU/Linux, GNU SDK – kompilatory i biblioteki z GNU/Linux, Perla nie zaznaczamy – doinstalujemy go później, a Visual Studio Debugger Add-in, tylko jeśli mamy i używamy Visual Studio.
Dalej musimy ustawić 3 opcje związane z bezpieczeństwem, ale ich podstawowe znaczenie to zapewnienie maksymalnie najwyższej kompatybilności ze standardem POSIX, dlatego zalecam ich włączenie:
- Enable SuToRoot behavior for SUA programs – jak wiemy większość operacji w środowiskach Unix / Linux od dawien dawna wykonywanych jest z prawami zwykłego użytkownika, ale czasem zachodzi potrzeba uruchomienia jakiegoś polecenie z prawami roota, można to zrobić bez konieczności przelogowania się. Zaznaczenie tej opcji pozwoli przełączać się na konto roota, nawet gdy mechanizm User Account Control jest włączony, a domyślnie jest.
- Enable setuid behaviour for SUA programs – zgodnie ze standardem POSIX prawa do pliku obejmują atrybuty setuid oraz setgid, które powodują, że w przypadku plików wykonywalnych system operacyjny uruchomi je nie z prawami bieżącego użytkownika, lecz z uprawnieniami właściciela pliku (zwykle roota) lub grupy będącej właścicielem pliku. Taki mechanizm pozwala zwykłemu użytkownikowi uruchomić program czy skrypt z prawami roota bez autoryzacji, co stwarza potencjalne niebezpieczeństwo.
- Change default behavior to case sensitive – tu nie ma się nad czym zastanawiać, włączmy opcję rozróżniania małych i WIELKICH znaków, jak we wszystkich Uniksach / Linuksach.
Kolejny etap to doinstalowanie pakietu dodatkowych narzędzi ze strony społeczności SUA . Znajdziemy tam kilka paczek, najbardziej kompletne są w zależności od architektury pkg-current-bundlecomplete60.exe
lub pkg-current-bundlecomplete60x64.exe
. Ściągamy jedną z nich. Następnie uruchamiamy jako Administrator jeden z zainstalowanych shelli. W shellu przechodzimy do katalogu, gdzie ściągnęliśmy paczkę cd katalog/do/którego/ściągnęliśmy/paczkę
po czym urachamiamy instalator poleceniem ./pkg-current-bundlecomplete60.exe
lub ./pkg-current-bundlecomplete60x64.exe
w zależności od architektury.
Instalację zgodnie z zaleceniami powinniśmy przeprowadzić jako lokalny Administrator, niemniej jednak przy wykorzystaniu mechanizmu UAC również da się to zrobić. W toku instalacji wyświetli się poniższe ostrzeżenie, jeśli chcemy żeby serwer SSH starował automatycznie odpowiadamy pozytywnie:
1 2 3 4 5 6 7 8 9 |
The local Administrator can start SSHD directly. You are a member of the Administrators group, not local Administrator. You can start SSHD by signaling init to stop and re-start all daemon processes. Do you want to do this? (y/n)[n] y Trying to start sshd daemon Talking to the init process Letting init process do some work Talking to the init process again Starting sshd daemon |
Następnie instalator zapyta czy dokonać aktualizacji, w tym przypadku oczywiście również odpowiadamy pozytywnie:
1 2 3 4 5 6 7 8 9 10 |
An update for this bootstrap contents may be available now. It is recommended that you update to the most recent version. Would you like to update now? (y/n)[y] y Using 'pkg_update' to get the update of 'pkg' (the installer). This will take a couple of minutes... Starting checks for updates Percent download complete/package: 100% |**************************************************| pkg Done. Finished getting the update for 'pkg'. |
Ostatni etap to instalacja Xming – serwera X dla Windows:
1 2 3 |
Now the X-server installation will begin. Would you like to install the X-Server now? (y/n) [y] y Done. |
Zgodnie z zaleceniami twórców po zakończeniu instalacji powinniśmy zamknąć bieżącą konsolę, a pracę powinniśmy rozpocząć w nowo otwartym terminalu.