Gebruikers van clientcomputers kunnen met het hulpprogramma chmod de setuid- (set-user-identifier-on-execution), setgid- (set-group-identifier-on-execution) en de plakbits van de bestandsmodus op bestanden of directory's instellen die zijn opgeslagen in een partitie van een NTFS-bestandssysteem en die via Server voor NFS worden gedeeld. Als het bestand of de directory vervolgens wordt geopend door een UNIX-client, geldt de standaardsemantiek voor deze bits. Een uitvoerbaar bestand waarvoor bijvoorbeeld de setuid-bit is ingesteld, wordt uitgevoerd onder de gebruikers-id (UID) van de bestandseigenaar en niet onder de UID van de gebruiker die het bestand uitvoert.

Als de setuid- of setgid-bit is ingesteld op een bestand, wordt doorgaans de eigenaar of de groep van het bestand gewijzigd in de eigenaars- of groeps-id (GID) waarmee het bestand wordt uitgevoerd. Een gebruiker kan eigenaar van een bestand worden (mits de bestandsmachtigingen dit toestaan), maar kan niet het eigendom aan een andere gebruiker overdragen, tenzij die gebruiker het recht heeft bestanden of directory's te herstellen. U moet dus zijn gemachtigd voor het herstellen van bestanden en directory's om met chown of chgrp de eigenaar of groep van een bestand te kunnen wijzigen in een andere gebruiker of groep. Standaard wordt deze machtiging toegewezen aan leden van de groepen Administrators en Back-upoperators. Deze machtiging kan ook aan andere groepen of per gebruiker worden toegewezen. Daarnaast moet het account van de gebruiker die chown of chgrp uitvoert, en de gebruiker of groep waaraan het eigendom is overgebracht, correct worden toegewezen via Active Directory opzoeken of Gebruikersnaamtoewijzing.

Door sommige NFS-servers (Network File System) die op UNIX zijn gebaseerd, worden speciale interpretaties of beperkingen toegepast voor de setuid-, setgid- en plakbits. Voor bijvoorbeeld bepaalde UNIX-versies moet een directory verplicht met de ingestelde setgid-bit maar zonder machtigingen voor uitvoeren worden vergrendeld. Door Server voor NFS worden geen speciale interpretaties of beperkingen voor het gebruik van deze bits geïmplementeerd.

Beveiligingsprobleem

Het standaardgedrag van de UNIX-setuid en -setgid veroorzaakt een bekend beveiligingsprobleem in UNIX. Een indringer kan gebruikmaken van het gedrag van setuid en setgid door een uitvoerbaar bestand te overschrijven met een Trojaans paard en vervolgens het uitvoerbare bestand opnieuw te starten. Het uitvoerbare bestand wordt dan uitgevoerd met de rechten van de eigenaar en niet met de rechten van de indringer.

Om dit bekende beveiligingsprobleem te voorkomen zijn setuid en setgid standaard uitgeschakeld en hebben deze geen effect op de UID- of GID-instellingen als het bestand of de directory de volgende kenmerken heeft:

  • Een van de volgende bits of beide bits zijn ingesteld: setgid of setuid.

  • Het bestand of de directory kan door een groep worden weggeschreven of uitgevoerd of door iedereen worden weggeschreven of uitgevoerd.

Er zijn gebruikers die deze beveiligingsmaatregel zeker problematisch zullen vinden, omdat deze maatregel afwijkt van het standaardgedrag van UNIX, hoewel het standaardgedrag van UNIX-setuid en -setgid niet is opgegeven als onderdeel van het NFS-protocol.

Het gedrag van setuid en setgid wijzigen

Gebruik de volgende procedure om het gedrag van de setuid- en setgid-bits te wijzigen:

Het gedrag van setuid en setgid wijzigen
  1. Open de Register-editor.

  2. Stel de volgende registersleutel in:

    HKEY_Local_Machine\System\CurrentControlSet\Services\NfsSvr\Parameters\SafeSetUidGidBits = (DWORD)

    • 1: de setuid en setgid werken veiliger

    • 0: het standaard UNIX-gedrag.