Subsystém pro unixové aplikace (SUA) je podsystémem odpovídajícím standardu POSIX (Portable Operating System Interface), ve kterém lze spustit prostředí, nástroje a aplikace systému UNIX současně s aplikacemi systému Microsoft® Windows®. V tomto tématu jsou uvedeny některé pokyny pro práci pro uživatele požadující operační systém odpovídající standardu POSIX.
Kompatibilita prostředí se standardem POSIX
Prostředí Korn shell v Subsystému pro unixové aplikace zachovává tradiční chování prostředí Korn shell, které je téměř shodné s chováním standardu POSIX. Pokud je potřebná přísná shoda se standardem POSIX, což některá prostředí vyžadují, informace o rozdílech mezi prostředím Korn shell a standardem POSIX naleznete v dokumentaci ksh(1) v souborech nápovědy v balíčku ke stažení sady Utilities and Software Development Kit (SDK) pro Subsystém pro unixové aplikace.
Má-li nastat plná shoda prostředí Korn shell se standardem POSIX, je třeba spustit prostředí Korn shell v režimu POSIX. Chcete-li spustit prostředí Korn shell v režimu POSIX, proveďte jednu z následujících akcí:
-
Otevřete prostředí Korn shell s možností -o posix.
-
V prostředí spusťte sadu příkazů -o posix.
-
Nastavte parametr prostředí POSIXLY_CORRECT.
Shoda se standardem POSIX není podporována v prostředí C shell. Na rozdíl od prostředí Korn shell neumožňuje prostředí C shell zadávání příkazů v režimu POSIX.
Křížová kontrola oprávnění pro adresáře
Ve výchozím nastavení mají uživatelé systému Windows oprávnění pro pohyb v adresářovém stromě i v případě, že nemají oprávnění k přístupu ke každému adresáři v cestě. V systémech kompatibilních se standardem POSIX není přístup k adresáři možný, pokud nemáte oprávnění k přístupu ke každému adresáři, který se nachází v cestě k tomuto adresáři. Toto chování standardu POSIX je označováno jako křížová kontrola. Pokud například nemáte přístupová oprávnění k adresáři, nemůžete měnit aktuální adresář na žádný z jeho podadresářů, přestože máte přístupová oprávnění k podadresářům. V systému Windows lze ve výchozím nastavení měnit aktuální adresář na podadresáře, ke kterým máte oprávnění.
V systému Windows existuje zvláštní oprávnění nazývané Procházet složkou / Spouštět soubory, které můžete nastavit pro uživatele nebo skupinu. Toto oprávnění lze nakonfigurovat pro povolení nebo odepření pohybu v adresářovém stromě. Oprávnění Procházet složkou je uplatněno pouze tehdy, pokud uživatel nebo skupina nemá uživatelské právo Obejít křížovou kontrolu v modulu snap-in Zásady skupiny. Ve výchozím nastavení systému Microsoft Windows 2000 má skupina Everyone uživatelské právo Obejít křížovou kontrolu. V operačních systémech Windows Server® 2008 R2, Windows® 7, Windows Server® 2008, Windows Vista®, Windows Server 2003 a Windows XP mají toto oprávnění skupiny Administrators, Backup Operators, Everyone, Power Users a Users. Požadujete-li přísnou shodu se standardy POSIX, odeberte všem uživatelům a skupinám kromě skupiny Backup Operators uživatelské právo Obejít křížovou kontrolu. Požadujete-li shodu s oprávněními, které má uživatel root user v mnoha dalších implementacích systému UNIX, odeberte všem uživatelům kromě skupin Administrators a Backup Operators uživatelské právo Obejít křížovou kontrolu.
Odchylka chování křížové kontroly u příkazu su a setuid
Uživatelé root, kteří používají příkaz su ke spouštění programů v roli jiných uživatelů, a uživatelé, kteří používají procesy setuid (včetně procesů týkajících se volání setuid), se odchylují od výše popsaného výchozího chování tím, že si ponechávají některá práva k procházení adresářů.
Odebrání práva Nepoužívat kontrolu procházení uživatelským účtům způsobí, že chování bude odpovídat standardu POSIX. Pokud se však uživatel root pokusí spustit příkaz su s jiným uživatelem bez poskytnutí hesla, nebude výsledná relace vykazovat popsané chování. Procesy spuštěné poté, co uživatel root spustí příkaz su bez poskytnutí hesla, získají přístup k adresářům a budou moci procházet adresářovým stromem, přestože nemusejí mít práva ke všem adresářům v cestě.
Procesy Setuid a procesy, které volají funkce setuid, seteuid nebo setreuid, budou vykazovat stejné chování. Po odebrání práva Nepoužívat kontrolu procházení uživatelskému účtu, pomocí kterého jsou tyto procesy spuštěny, budou tyto procesy moci nadále procházet adresářovým stromem, přestože nemusejí mít práva ke všem adresářům v cestě.