root (root-gebruiker)
Wat is het?
In Unix-achtige systemen is 'root' de naam van de superuser: een account met volledige systeemrechten en toegang tot alle bestanden en instellingen. In databases zoals MySQL bestaat er vaak ook een 'root'-account met alle privileges voor beheer en configuratie. In web- en mobiele context verwijst 'root' daarnaast naar de hoogste map in een bestandssysteem (de root directory, aangeduid als '/') of naar het concept van 'root access' op een mobiel apparaat (geprivilegieerde toegang tot systeemniveau). Omdat de root-gebruiker onbeperkte macht heeft, brengt gebruik of blootstelling van dit account grote veiligheidsrisico's met zich mee; best practices adviseren minimaal privilegegebruik, het uitschakelen of beschermen van standaard root-accounts en het gebruik van specifieke service-accounts voor applicaties.
Praktisch voorbeeld
Stel je zet een Node.js-webapplicatie op een Linux-server: als je de serverprocessen als root draait, kan een kwetsbaarheid in de app volledige controle over de server geven. Een betere aanpak is het aanmaken van een dedicated systeemgebruiker (bv. 'webapp') en het verlenen van alleen de noodzakelijke bestandsrechten aan die gebruiker, plus systeemdiensten opzetten met sudo of systemd. Voor de database: in plaats van de MySQL 'root' gebruiker in de applicatieconfiguratie te gebruiken, maak je een specifieke databasegebruiker aan met beperkte privileges (alleen SELECT/INSERT/UPDATE op de benodigde database) en verwijder of beveilig je het root-wachtwoord en externe root-login.
Test je kennis
Wat is de beste praktijk wanneer je een webapplicatie op een Linux-server in productie zet met betrekking tot de 'root' gebruiker?