Podsystem aplikacji systemu UNIX (SUA) to podsystem zgodny ze standardem POSIX pozwalający uruchamiać powłoki, narzędzia i aplikacje przeznaczone dla systemu UNIX równolegle z aplikacjami przeznaczonymi dla systemu Microsoft® Windows®. W tym temacie opisano niektóre aspekty pracy istotne dla użytkowników wymagających systemu operacyjnego zgodnego ze standardem POSIX.

Zgodność z powłoką POSIX

Powłoka Korn podsystemu SUA funkcjonuje w sposób identyczny jak tradycyjna powłoka Korn, która z kolei charakteryzuje się niemal identycznym działaniem jak powłoka POSIX. Jeśli konieczna jest ścisła zgodność ze standardem POSIX, co ma miejsce w niektórych środowiskach roboczych, należy się zapoznać z różnicami między powłoką Korn i POSIX opisanymi w dokumentacji programu ksh(1) w plikach Pomocy dostępnych w pakiecie Narzędzia i zestaw SDK dla podsystemu aplikacji systemu UNIX dostępnym do pobrania.

Aby uzyskać pełną zgodność powłoki Korn ze standardem POSIX, należy uruchomić powłokę Korn w trybie POSIX. Aby uruchomić powłokę Korn w trybie POSIX, wykonaj jedną z następujących czynności:

  • Uruchom powłokę Korn z opcją -o posix.

  • Uruchom w powłoce polecenie set -o posix.

  • Ustaw parametr powłoki POSIXLY_CORRECT.

Zgodność ze standardem POSIX nie jest zapewniona w powłoce C. W odróżnieniu od powłoki Korn powłoka C nie ma opcji polecenia trybu POSIX.

Uprawnienia sprawdzania przechodzenia katalogów

Domyślnie użytkownicy systemu Windows mają uprawnienia do przechodzenia po drzewie katalogów, chociaż mogą nie mieć uprawnień dostępu do wszystkich katalogów w ścieżce. W systemach POSIX nie można uzyskać dostępu do katalogu, jeśli nie ma się uprawnień dostępu do wszystkich katalogów w ścieżce do tego katalogu. Zachowanie systemu POSIX jest określane jako sprawdzanie przechodzenia. Na przykład, jeśli użytkownik nie ma uprawnień dostępu do katalogu, to nie może przejść do jakiegokolwiek podkatalogu w tym katalogu, nawet jeśli ma uprawnienia dostępu do podkatalogów. Domyślnie w systemie Windows bieżącym katalogiem może być dowolny podkatalog, do którego użytkownik ma uprawnienia.

W systemie Windows istnieje specjalne uprawnienie o nazwie Przechodzenie przez folder/Wykonywanie pliku, które można przydzielić użytkownikowi lub grupie. To uprawnienie można skonfigurować w taki sposób, aby zezwalać na przechodzenie przez drzewo katalogów lub odmawiać przechodzenia. Uprawnienie Przechodzenie przez folder działa tylko wtedy, gdy grupie lub użytkownikowi nie przyznano uprawnienia Pomiń sprawdzanie przechodzenia, które jest ustawiane w przystawce Zasady grupy. Domyślnie w systemie Windows 2000 uprawnienie Pomiń sprawdzanie przechodzenia jest przyznawane grupie Wszyscy. W systemie operacyjnym Windows Server® 2008 R2, Windows® 7, Windows Server® 2008, Windows Vista®, Windows Server 2003 oraz Windows XP wszystkie grupy Administratorzy, Operatorzy kopii zapasowych, Wszyscy, Użytkownicy zaawansowani oraz Użytkownicy mają to uprawnienie. Aby uzyskać pełną zgodność ze standardem POSIX, należy odwołać wszystkim użytkownikom i grupom uprawnienie Pomiń sprawdzanie przechodzenia z wyjątkiem grupy Operatorzy kopii zapasowych. Aby zapewnić zgodność z uprawnieniami przyznawanymi użytkownikowi root w wielu implementacjach systemu UNIX, należy odwołać uprawnienie Pomiń sprawdzanie przechodzenia wszystkim użytkownikom z wyjątkiem grup Administratorzy i Operatorzy kopii zapasowych.

Odchylenie zachowania sprawdzania przechodzenia dla poleceń su i setuid

Zachowanie użytkowników root, którzy używają polecenia su, aby uruchamiać programy jako inni użytkownicy, oraz użytkowników, którzy używają procesów setuid (oraz tych procesów, które obejmują wywołania związane z poleceniem setuid), rożni się od opisanego powyżej zachowania domyślnego przez zachowanie pewnych praw przechodzenia katalogów.

Usunięcie prawa Pomiń sprawdzanie przechodzenia z kont użytkowników zapewnia zachowanie zgodne ze standardem POSIX. Gdy użytkownik root próbuje jednak uruchomić polecenie su dla innego użytkownika bez podania hasła, zachowanie utworzonej w ten sposób sesji nie będzie takie, jak opisane powyżej. Procesy uruchomione po tym, jak użytkownik root uruchomi polecenie su bez podania hasła, mogą uzyskiwać dostęp do drzewa katalogów i poruszać się po nim. Mogą nie mieć jednak uprawnień do uzyskania dostępu do każdego katalogu w ścieżce.

Procesy Setuid oraz procesy, które wywołują polecenie setuid, seteuid lub setreuid, zachowują się w identyczny sposób. Po usunięciu prawa Pomiń sprawdzanie przechodzenia z konta użytkownika, który uruchamia te procesy, procesy te mogą poruszać się po drzewie katalogów, mogą jednak utracić uprawnienia dostępu do każdego katalogu w ścieżce.

Zobacz też