Sdílet prostřednictvím


Pojmenované zabezpečení kanálu a přístupová práva

Zabezpečení systému Windows umožňuje řídit přístup k pojmenovaným kanálům. Další informace o zabezpečení naleznete v tématu Access-Control Model.

Při volání funkce CreateNamedPipe můžete pro pojmenovaný kanál zadat popisovač zabezpečení. Popisovač zabezpečení řídí přístup ke konci pojmenovaného kanálu klienta i serveru. Pokud zadáte NULL, pojmenovaný kanál získá výchozí popisovač zabezpečení. Seznamy ACL ve výchozím popisovači zabezpečení pojmenovaného kanálu uděluje úplné řízení účtu LocalSystem, správcům a vlastníkovi tvůrce. Také udělují přístup pro čtení členům skupiny Všichni a anonymní účet.

Pokud chcete načíst popisovač zabezpečení pojmenovaného kanálu, zavolejte funkci GetSecurityInfo. Pokud chcete změnit popisovač zabezpečení pojmenovaného kanálu, zavolejte funkci SetSecurityInfo.

Když vlákno volá CreateNamedPipe otevřít popisovač na konci existujícího pojmenovaného kanálu, systém před vrácením popisovače provede kontrolu přístupu. Kontrola přístupu porovnává přístupový token vlákna a požadovaná přístupová práva proti seznamu DACL v popisovači zabezpečení pojmenovaného kanálu. Kromě požadovaných přístupových práv musí seznam DACL povolit volající vlákno FILE_CREATE_PIPE_INSTANCE přístup k pojmenované kanálu.

Podobně když klient volá CreateFile nebo CallNamedPipe funkci pro připojení ke konci pojmenovaného kanálu, systém provede kontrolu přístupu před udělením přístupu klientovi.

Popisovač vrácený funkcí CreateNamedPipe vždy má přístup k synchronizaci. Má také GENERIC_READ, GENERIC_WRITE nebo obojí v závislosti na otevřeném režimu kanálu. Níže jsou uvedená přístupová práva pro každý otevřený režim.

Režim otevření Přístupová práva
PIPE_ACCESS_DUPLEX (0x00000003) FILE_GENERIC_READ, FILE_GENERIC_WRITE a SYNCHRONIZOVAT
PIPE_ACCESS_INBOUND (0x00000001) FILE_GENERIC_READ a synchronizovat
PIPE_ACCESS_OUTBOUND (0x00000002) FILE_GENERIC_WRITE a SYNCHRONIZOVAT

 

FILE_GENERIC_READ přístup pro pojmenovaný kanál kombinuje práva ke čtení dat z kanálu, čtení atributů kanálu, čtení rozšířených atributů a čtení seznamu DACL kanálu.

FILE_GENERIC_WRITE přístup pro pojmenovaný kanál kombinuje práva k zápisu dat do kanálu, připojení dat do kanálu, zápis atributů kanálu, zápis rozšířených atributů a čtení seznamu DACL kanálu. Vzhledem k tomu, že FILE_APPEND_DATA a FILE_CREATE_PIPE_INSTANCE mají stejnou definici, FILE_GENERIC_WRITE umožňuje oprávnění k vytvoření kanálu. Chcete-li se tomuto problému vyhnout, místo použití FILE_GENERIC_WRITE použijte jednotlivá práva.

Pokud chcete číst nebo zapisovat SACL objektu, můžete požádat ACCESS_SYSTEM_SECURITY přístupové právo k pojmenovaného objektu kanálu. Další informace naleznete v tématu Access-Control Seznamy (ACL) a SACL Access Right.

Chcete-li zabránit vzdáleným uživatelům nebo uživatelům v jiné relaci terminálových služeb v přístupu k pojmenovaným kanálu, použijte identifikátor SID přihlášení v seznamu DACL kanálu. Přihlašovací identifikátor SID se používá také při přihlášeních za běhu; je identifikátor SID používaný k ochraně oboru názvů objektů relace. Další informace naleznete v tématu Získání identifikátoru SID přihlášení v jazyce C++.