Gewone gebruikers en root rechten
Van MandrivaClub.NL Wiki
Als bestanden die alleen gestart kunnen worden door root, ook gebruikt moeten worden door een gewone gebruiker, heb je een aantal mogelijkheden om dit te bereiken:
- Maak de gebruiker onderdeel van de groep van wie het bestand eigendom is.
Ondanks dat dit de meest eenvoudige oplossing is, is het ook de meest gevaarlijke. Stel dat de gebruiker 'Tristan' de webserver moet kunnen starten en stoppen. Hiertoe moet een gebruiker rechten hebben om de scripts die staan in de directory /etc/init.d/ te beheren. Deze directorie valt onder de rechten van de groep root. Als 'Tristan' lid word van de root-groep, kan hij aan al deze scripts komen (en nog veel meer).
- Maak gebruik van de geavanceerde toegangsrechten: uid en gid.
Setuid is een bestandsmachtigings-bit waarmee je aangeeft dat een gecompileerd bestand uitgevoerd word met de machtigingen van de eigenaar. Hierdoor kan een gebruiker een toepassing draaien, met dezelfde rechten als de eigenaar (bijvoorbeeld root). Setgid doet het zelfde, maar dan voor de groep.
Dit is op zichzelf zonder gevaar. De gebruiker krijgt geen extra machtigingen over bestanden zoals in het eerste voorbeeld. Maar als een programma met een grove fout erin opeens uitgevoerd wordt als root, kunnen er alsnog beveiligingsproblemen ontstaan. Een programma dat door setuid of setgid de rechten van root krijgt, kan ook andere bestanden van root openen (en opslaan of verwijderen). Hierdoor kunnen de rechten van root worden misbruikt.
- Gebruik sudo om bepaalde gebruikers extra machtigingen te geven op bestandsniveau.
Ondanks dat hiermee niet alle problemen op te lossen zijn, is het toch de meest veilige oplossing. Het is de veiligste omdat in het sudo configuratiebestand (dat alleen te wijzigen is door root) regels omschreven zijn die bepalen welk bestand door welke gebruiker uitgevoerd mag worden. Een programma neemt niet de rol van eigenaar op zich (zoals bij setuid of setgid). Daardoor kan je alleen die bestanden openen waar vooraf toestemming voor is verleend. Meer informatie vind je in de Startersgids.

