Identyfikatory SID (Security Identifiers) w Windows: Jak są przechowywane w uprawnieniach plików i do czego służą?
2026-06-03Identyfikatory SID, czyli Security Identifiers, to jeden z fundamentalnych elementów systemu zabezpieczeń Windows. Nie są to typowe pliki z rozszerzeniem, które znajdziesz w konkretnym folderze na dysku. Zamiast tego, SID to unikalne, alfanumeryczne ciągi znaków, które system operacyjny Windows przypisuje do każdego użytkownika, grupy, konta komputera i sesji logowania. Służą one do identyfikacji tych podmiotów w systemie, a co najważniejsze – do kontrolowania ich dostępu do zasobów, takich jak pliki, foldery, klucze rejestru czy usługi. Znajdują się one w deskryptorach bezpieczeństwa każdego obiektu, do którego można przypisać uprawnienia.
Co to są identyfikatory SID i gdzie je znajdziesz?
Każdy SID ma swój ściśle określony format: `S-1-5-21-DOMENA_ID-RZID-RZID-RZID-RID`.
- `S-1`: Standardowa wersja SID.
- `5`: Poziom uprawnień (authority identifier).
- `21`: Typ identyfikatora (domena lub komputer lokalny).
- `DOMENA_ID-RZID-RZID-RZID`: Unikalny identyfikator dla domeny lub komputera lokalnego (subauthority identifiers).
- `RID (Relative Identifier)`: Unikalny identyfikator dla konkretnego użytkownika, grupy lub konta komputera w danej domenie/komputerze. Przykładowo, Administrator zawsze ma RID 500, a Gość 501.
Jak już wspomniałem, SIDy nie są fizycznymi plikami. Zamiast tego, są przechowywane w bazie danych SAM (Security Account Manager) na komputerach lokalnych lub w Active Directory w środowiskach domenowych. Co ważniejsze dla naszego tematu, każdy plik, folder czy inny obiekt z uprawnieniami w Windows posiada swój deskryptor bezpieczeństwa (Security Descriptor). To właśnie w tym deskryptorze znajdują się listy kontroli dostępu (Access Control Lists – ACL), które zawierają wpisy ACE (Access Control Entries). Każdy wpis ACE określa, jaki SID (czyli jaki użytkownik lub grupa) ma jakie uprawnienia (np. odczyt, zapis, modyfikacja) do danego obiektu.
Jak działają SIDs i kto ich używa?
Głównym zadaniem SIDów jest zapewnienie spójnego i bezpiecznego zarządzania uprawnieniami. Nazwy użytkowników i grup mogą się zmieniać, ale ich SIDy pozostają niezmienne przez cały okres istnienia konta. Dzięki temu system zawsze wie, kto jest kim, niezależnie od ewentualnych zmian nazw.
Kiedy logujesz się do systemu, Windows tworzy dla Ciebie token dostępu (access token). Ten token zawiera Twój unikalny SID, a także SIDy wszystkich grup, do których należysz. Gdy próbujesz uzyskać dostęp do pliku lub folderu, system porównuje SIDy z Twojego tokenu z tymi zapisanymi w ACL danego obiektu. Jeśli Twoje SIDy (lub SIDy Twoich grup) zgadzają się z tymi w ACL i masz przypisane odpowiednie uprawnienia, dostęp zostanie udzielony.
SIDS są tworzone i zarządzane przez sam system operacyjny Windows, a konkretnie przez usługi takie jak LSA (Local Security Authority) oraz Active Directory Domain Services. Używają ich wszystkie narzędzia do zarządzania uprawnieniami, począwszy od Eksploratora plików, przez wiersz poleceń (`icacls`, `cacls`) aż po PowerShell (`Get-Acl`, `Set-Acl`).
Czy SID to wirus? Czy można go usunąć?
Absolutnie nie! SID to fundamentalny i niezbędny element architektury bezpieczeństwa Windows. Bez SIDów system nie byłby w stanie odróżnić jednego użytkownika od drugiego i zarządzać ich uprawnieniami.
Nie można „usunąć” SIDa jako pliku, bo nim nie jest. Możesz jednak usunąć użytkownika lub grupę, co sprawi, że ich SID stanie się „osierocony” – czyli będzie istnieć w ACLach obiektów, ale nie będzie powiązany z aktywnym kontem. Możesz też usunąć wpis konkretnego SIDa z listy ACL dla danego pliku lub folderu.
Co się stanie, jeśli usuniesz wpis SIDa z ACL? Użytkownik lub grupa reprezentowana przez ten SID po prostu straci uprawnienia do tego konkretnego zasobu. Jeśli usuniesz go przypadkowo lub bez namysłu, na przykład z folderu udostępnionego, inni użytkownicy mogą stracić do niego dostęp. U mnie raz testowałem, co się stanie, gdy usunę uprawnienia dla wbudowanej grupy „Użytkownicy uwierzytelnieni” z folderu projektu – skończyło się na tym, że cały zespół nie mógł otworzyć plików i musiałem szybko cofać zmiany. Lekcja z tego jest taka: zawsze dokładnie sprawdzaj, jakie SIDy modyfikujesz.
Typowe problemy i błędy z SIDami
1. „Nieznany Użytkownik (S-1-5-…)”: To chyba najczęstszy problem. Pojawia się, gdy konto użytkownika lub grupy, do której należy dany SID, zostało usunięte z systemu lub domeny, ale jego wpisy w ACL plików pozostały. System nie jest już w stanie przetłumaczyć tego SIDa na czytelną nazwę. Takie „osierocone” SIDy często zajmują tylko miejsce i można je bezpiecznie usunąć z list ACL.
2. Brak dostępu do plików/folderów: Jeśli uprawnienia zostały źle skonfigurowane, na przykład przypadkowo usunąłeś ważny SID z ACL lub zmieniłeś jego uprawnienia na zbyt restrykcyjne, użytkownicy mogą nagle stracić dostęp do krytycznych zasobów. Kiedyś, próbując „posprzątać” uprawnienia w kluczu rejestru dla pewnej aplikacji, tak namieszałem, że program przestał działać, bo nie mógł zapisać swoich ustawień. Nie wiem czemu dokładnie, ale w takich sytuacjach ręczne edytowanie przez PowerShell zamiast przez GUI zawsze u mnie działało szybciej.
3. Problemy po migracji lub zmianie nazwy komputera: W środowiskach domenowych, zwłaszcza po migracji kont użytkowników z jednej domeny do drugiej, stare SIDy mogą pozostać w ACLach, co prowadzi do problemów z dostępem. Podobnie po zmianie nazwy komputera, mogą pojawić się osierocone SIDy kont lokalnych.
Dlaczego SIDs są tak ważne (i chronione)?
SIDy są absolutnie kluczowe dla bezpieczeństwa i integralności systemu Windows. To dzięki nim możliwe jest precyzyjne zarządzanie dostępem do każdego zasobu. Nie są one „plikami read-only” w sensie, że nie możesz ich po prostu otworzyć i edytować jak dokumentu tekstowego. Ich zarządzanie odbywa się na głębokim poziomie systemowym.
System operacyjny rygorystycznie kontroluje, kto może tworzyć SIDy (tylko autoryzowane procesy, takie jak LSA) i kto może modyfikować wpisy ACL zawierające SIDy. Aby zmienić uprawnienia dla pliku lub folderu (czyli modyfikować ACL), musisz mieć odpowiednie uprawnienia – np. być właścicielem obiektu lub posiadać uprawnienia Full Control. To zapobiega sytuacji, w której zwykły użytkownik mógłby sobie samemu przyznać dostęp do plików systemowych lub danych innych użytkowników.
Najczęstsze pytania
Czy mogę zmienić SID użytkownika?
Nie, SID użytkownika lub grupy jest generowany jednorazowo przy tworzeniu konta i nie można go zmienić. Zmiana nazwy konta nie zmienia SIDa. Jeśli potrzebujesz nowego SIDa, musisz stworzyć nowe konto.
Czym różni się SID od nazwy użytkownika?
Nazwa użytkownika jest czytelną dla człowieka etykietą, która może się zmieniać. SID to unikalny, niezmienny identyfikator, używany wewnętrznie przez system do identyfikacji konta.
Czy „nieznane” SIDy zawsze oznaczają problem?
Niekoniecznie. Często po usunięciu użytkownika lub grupy zostają „osierocone” SIDy. Zazwyczaj nie powodują one problemów funkcjonalnych, ale mogą zaśmiecać listy ACL. Można je bezpiecznie usunąć, aby poprawić czytelność uprawnień.
Teraz, gdy wiesz, jak działają SIDy, zrób przegląd uprawnień do kluczowych folderów i usuń te „nieznane” SIDy, które na pewno nie są już potrzebne. To mała rzecz, ale pozwoli Ci lepiej kontrolować bezpieczeństwo swoich danych.
