Root beveiliging Het meest gewilde account op je machine is het root (superuser) account. Dit account heeft zeggenschap over de gehele machine, wat ook zeggenschap kan inhouden over andere machines op het netwerk. Onthoud dat je het root account alleen moet gebruiken voor hele korte specifieke taken en dat het meestal uitgevoerd moet worden als een normale gebruiker. Zelfs kleine foutjes als je ingelogd bent als root kunnen problemen veroorzaken. Hoe korter je ingelogd bent met root privileges, hoe veiliger het is. Enkele trucks om te voorkomen dat je je computer overhoop haalt als root: Als je bezig bent met een complex commando, probeer het dan eerst op een niet-destructieve manier ... vooral commando's die wildcards gebruiken: als je bijvoorbeeld "rm foo*.bar" wilt doen, doe dan eerst "ls foo*.bar" om zeker te weten dat je de bestanden verwijdert die je wilde verwijderen. Het gebruik van echo in plaats van destructieve commando's werkt soms ook. Voorzie je gebruikers van een standaard alias voor het rm commando om een bevestiging te vragen voordat ze bestanden verwijderen. Wordt alleen root om enkele specifieke taken uit te voeren. Als je jezelf erop betrapt dat je probeert uit te vinden hoe iets werkt, ga dan eerst terug naar de gewone gebruiker-shell, totdat je zeker weet wat er als root gedaan moet worden. Het command path voor de root gebruiker is erg belangrijk. Het command path (dat wil zeggen de PATH omgevingsvariabele) specificeert de directory's waarin de shell zoekt naar programma's. Probeer het command path voor de root gebruiker zoveel mogelijk te beperken en zet nooit een . (hetgeen betekent "de huidige directory") in je PATH. Zorg er bovendien voor dat je nooit directory's met schrijfpermissie in je zoekpad hebt, omdat dit aanvallers toestaat om bestaande binary's aan te passen of nieuwe binary's aan je zoekpad toe te voegen, hetgeen hen toestaat als root te opereren de volgende keer dat je dat commando uitvoert. Gebruik nooit de rlogin/rsh/rexec tools (genaamd de r-utility's) als root. Ze zijn onderhevig aan vele soorten aanvallen en zijn ronduit gevaarlijk als je ze uitvoert als root. Maak nooit een .rhosts bestand aan voor root. Het /etc/securetty bestand bevat een lijst met terminals waarop root in kan loggen. Standaard (onder Red Hat Linux) is dit ingesteld op alleen de lokale virtuele consoles (vty's). Wees erg voorzichtig met het toevoegen van iets anders aan dit bestand. Je zou indirect op je normale gebruikersaccount in moeten kunnen loggen en vervolgens su als dat nodig is (hopelijk via of een ander versleuteld kanaal), zodat er geen reden is waarom je direct als root in zou moeten loggen. Wees altijd langzaam en weloverwogen als je bezig bent als root. Je acties kunnen een heleboel dingen beïnvloeden. Denk na voordat je typt! Als het absoluut noodzakelijk is om iemand (hopelijk erg vertrouwd) roottoegang tot je machine toe te staan, zijn er een aantal tools die kunnen helpen. sudo staat gebruikers toe hun wachtwoord te gebruiken om toegang te krijgen tot een beperkte set commando's als root. Zodoende kun je, bijvoorbeeld, een gebruiker in staat stellen om verwijderbare media uit te werpen en te mounten op je Linux box, maar verder geen andere root privileges te hebben. sudo houdt ook een log bij van alle geslaagde en mislukte sudo pogingen, zodat je uit kunt zoeken wie welk commando gebruikte om wat te doen. Om deze reden werkt sudo zelfs goed op plaatsen waar een aantal mensen root toegang hebben, omdat het je helpt om aangebrachte wijzigingen bij te houden. Hoewel sudo gebruikt kan worden om bepaalde gebruikers bepaalde privileges voor bepaalde taken te geven, heeft het een aantal tekortkomingen. Het moet alleen gebruikt worden voor een beperkt takenpakket, zoals een server opnieuw opstarten of nieuwe gebruikers toevoegen. Elk programma waarbij het uitwijken naar een shell mogelijk is, zal root toegang verschaffen aan een gebruiker die het aanroept via sudo. Dit omvat de meeste tekstverwerkers bijvoorbeeld. Ook een programma zo onschadelijk als /bin/cat kan worden gebruikt om bestanden te overschrijven, waarmee het mogelijk zou kunnen worden om root te misbruiken. Beschouw sudo als een middel voor het toekennen van verantwoordelijkheden en verwacht niet dat het de root gebruiker kan vervangen en tevens veilig is.