Użytkownicy komputerów klienckich mogą za pomocą narzędzia chmod ustawiać następujące bity trybu pliku: bit wykonania z uprawnieniami właściciela (setuid), bit wykonania z uprawnieniami właściciela grupowego (setgid) i bit pozostania w pamięci (sticky). Zmiany te mogą dotyczyć udostępnionych przez usługę Serwer systemu plików NFS plików lub katalogów przechowywanych na partycji sformatowanej w systemie plików NTFS. Przy późniejszym otwarciu katalogu lub pliku z poziomu klienta opartego na systemie UNIX dla tych bitów ma zastosowanie standardowa semantyka. Plik wykonywalny z ustawionym bitem setuid zostanie na przykład wykonany z identyfikatorem (UID) właściciela pliku, a nie z identyfikatorem użytkownika, który uruchomił ten plik.
Jeśli dla pliku jest ustawiony bit setuid lub setgid, to zazwyczaj właściciel lub grupa pliku jest zmieniana na właściciela lub grupę, z której identyfikatorem GID plik jest wykonywany. Jeśli użytkownik nie ma praw do przywracania plików lub katalogów, zabezpieczenia systemu Windows umożliwią przejęcie pliku na własność (o ile pozwalają na to uprawnienia do pliku), ale nie będzie możliwe przeniesienie własności na innego użytkownika. W związku z tym, aby zmienić właściciela lub grupę pliku na innego użytkownika lub grupę za pomocą narzędzia chown lub chgrp, użytkownik musi posiadać uprawnienia do przywracania plików i katalogów. Domyślnie uprawnienia te są przypisane członkom grup Administratorzy i Operatorzy kopii zapasowych, chociaż mogą zostać przypisane innym grupom lub poszczególnym użytkownikom. Dodatkowo konto użytkownika korzystającego z narzędzia chown lub chgrp oraz użytkownika lub grupy, na którą własność jest przenoszona, musi być poprawnie zamapowane za pomocą usługi Active Directory - wyszukiwanie albo usługi mapowania nazw użytkowników.
Niektóre serwery sieciowego systemu plików (NFS) oparte na systemie UNIX stosują specjalne interpretacje i ograniczenia w stosunku do bitów setuid, setgid i pozostania w pamięci. Niektóre wersje systemu UNIX wymuszają na przykład stosowanie obowiązkowych blokad katalogów z ustawionym bitem setgid, ale bez uprawnień do wykonywania. Usługa Serwer systemu plików NFS nie implementuje specjalnych interpretacji i ograniczeń w korzystaniu z tych bitów.
Problem z zabezpieczeniami
Standardowe zachowanie bitów setuid i setgid w systemie UNIX wiąże się ze znanym problemem dotyczącym zabezpieczeń w systemie UNIX. Intruz może wykorzystać zachowanie bitów setuid i setgid, zastępując plik wykonywalny koniem trojańskim, a następnie uruchamiając ten plik wykonywalny. Plik wykonywalny jest wtedy uruchamiany z prawami właściciela, a nie intruza.
Aby zapobiec wykorzystaniu tego problemu zabezpieczeń, domyślnie bity setuid i setgid są wyłączone i nie będą miały wpływu na ustawienia UID oraz GID, o ile plik lub katalog ma wszystkie następujące cechy:
-
Przynajmniej jeden z następujących bitów jest ustawiony: setgid lub setuid.
-
Plik lub katalog ma przypisane prawa do zapisu dla grupy, prawa do wykonywania dla grupy, prawa do zapisu dla wszystkich lub prawa do wykonywania dla wszystkich.
Niektórzy klienci mogą mieć trudności z tą metodą zabezpieczeń, ponieważ różni się ona od standardowego zachowania systemu UNIX. Standardowe zachowanie bitów setuid i setgid w systemie UNIX nie stanowi jednak części protokołu NFS.
Zmienianie zachowania bitów setuid i setgid
W celu zmiany zachowania bitów setuid i setgid należy użyć następującej procedury:
Aby zmienić zachowanie bitów setuid i setgid |
Otwórz Edytor rejestru.
Ustaw następujący klucz rejestru:
HKEY_Local_Machine\System\CurrentControlSet\Services\NfsSvr\Parameters\SafeSetUidGidBits = (DWORD)
-
Nadanie wartości 1 skutkuje bezpieczniejszym zachowaniem bitów setuid i setgid.
-
Nadanie wartości 0 skutkuje standardowym zachowaniem systemu UNIX.
-
Nadanie wartości 1 skutkuje bezpieczniejszym zachowaniem bitów setuid i setgid.