Uprawnienia
uprawnienia to prawo do konta, takiego jak konto użytkownika lub grupy, do wykonywania różnych operacji związanych z systemem na komputerze lokalnym, takich jak zamykanie systemu, ładowanie sterowników urządzeń lub zmienianie czasu systemu. Uprawnienia różnią się od praw dostępu na dwa sposoby:
- Uprawnienia kontrolują dostęp do zasobów systemowych i zadań związanych z systemem, natomiast kontrola praw dostępu do zabezpieczanych obiektów.
- Administrator systemu przypisuje uprawnienia do kont użytkowników i grup, podczas gdy system udziela lub odmawia dostępu do zabezpieczanego obiektu na podstawie praw dostępu przyznanych w listach DACL obiektu.
Każdy system ma bazę danych kont, która przechowuje uprawnienia przechowywane przez konta użytkowników i grup. Gdy użytkownik loguje się, system generuje token dostępu zawierający listę uprawnień użytkownika, w tym tych przyznanych użytkownikowi lub grupom, do których należy użytkownik. Należy pamiętać, że uprawnienia mają zastosowanie tylko do komputera lokalnego; konto domeny może mieć różne uprawnienia na różnych komputerach.
Gdy użytkownik próbuje wykonać operację uprzywilejowaną, system sprawdza token dostępu użytkownika, aby określić, czy użytkownik posiada niezbędne uprawnienia, a jeśli tak, sprawdza, czy uprawnienia są włączone. Jeśli użytkownik zakończy się niepowodzeniem tych testów, system nie wykonuje operacji.
Aby określić uprawnienia przechowywane w tokenie dostępu, wywołaj funkcję GetTokenInformation, która wskazuje również, które uprawnienia są włączone. Większość uprawnień jest domyślnie wyłączona.
Interfejs API systemu Windows definiuje zestaw stałych ciągów, takich jak SE_ASSIGNPRIMARYTOKEN_NAME, w celu zidentyfikowania różnych uprawnień. Te stałe są takie same we wszystkich systemach i są zdefiniowane w pliku Winnt.h. Aby uzyskać tabelę uprawnień zdefiniowanych przez system Windows, zobacz Privilege Constants. Jednak funkcje, które uzyskują i dostosowują uprawnienia w tokenie dostępu, używają typuLUID, aby zidentyfikować uprawnienia. Wartości LUID uprawnień mogą się różnić od jednego komputera do innego, a od jednego rozruchu do drugiego na tym samym komputerze. Aby uzyskać bieżącą LUID odpowiadającą jednej ze stałych ciągów, użyj funkcji LookupPrivilegeValue. Użyj funkcji LookupPrivilegeName, aby przekonwertować identyfikator LUID na odpowiadającą jej stałą ciągu.
System udostępnia zestaw nazw wyświetlanych, które opisują poszczególne uprawnienia. Są one przydatne, gdy musisz wyświetlić opis uprawnień użytkownika. Użyj funkcji LookupPrivilegeDisplayName, aby pobrać ciąg opisu odpowiadający stałej ciągu ciągu dla uprawnień. Na przykład w systemach używających języka angielskiego w Stanach Zjednoczonych nazwa wyświetlana dla uprawnień SE_SYSTEMTIME_NAME to "Zmień czas systemowy".
Za pomocą funkcji PrivilegeCheck można określić, czy token dostępu zawiera określony zestaw uprawnień. Jest to przydatne przede wszystkim w przypadku aplikacji serwerowych, które personifikują klienta.
Administrator systemu może używać narzędzi administracyjnych, takich jak Menedżer użytkowników, do dodawania lub usuwania uprawnień dla kont użytkowników i grup. Administratorzy mogą programowo używać funkcji Local Security Authority (LSA) do pracy z uprawnieniami. Funkcje LsaAddAccountRights i LsaRemoveAccountRights dodają lub usuńą uprawnienia z konta. Funkcja LsaEnumerateAccountRights wylicza uprawnienia posiadane przez określone konto. Funkcja LsaEnumerateAccountsWithUserRight wylicza konta, które posiadają określone uprawnienia.
Tematy pokrewne