Wanneer u administratieve toepassingen in Linux uitvoert, kunt u de su ("switch user") -opdracht gebruiken om over te schakelen naar de superuser (root), of u kunt de opdracht sudo ("super user do") gebruiken.
Een manier om te weten wanneer u de opdracht sudo gebruikt, is als u alleen opdrachten in terminal probeert uit te voeren om een "ontkende toegang" of "bewerking is supermachtsprivileges" te krijgen. Deze fouten kunnen optreden als de Linux-distributie - zoals Ubuntu - het gebruik van de root-gebruiker niet mogelijk maakt. Zodra u de opdracht sudo gebruikt, kan die specifieke opdracht met verhoogde rechten worden uitgevoerd.
Als u er echter voor kiest om de opdracht su te gebruiken, schakelt u de hele gebruiker over naar root, wat betekent dat zelfs na de eerste opdracht elke volgende wordt uitgevoerd met rootreferenties. Dit maakt het heel gemakkelijk om per ongeluk verhoogde commando's uit te voeren, die veel schade kunnen aanrichten als je niet voorzichtig bent.
Om te herformuleren: sudo werkt alleen voor elke opdracht die begint als "sudo", terwijl su enable elk commando in die prompt om als superuser te draaien zonder sudo of su voor elke te typen.
Hoe het werkt
Hoewel ze anders werken, kunt u de opdracht sudo vergelijken met de prompt die u mogelijk in Windows of macOS ziet. Wanneer u in die besturingssystemen wordt gevraagd of u wilt doorgaan met het uitvoeren van die specifieke actie, krijgt u een knop waarmee u kunt bevestigen dat u de actie met verhoogd privilege wilt uitvoeren en soms moet u zelfs het wachtwoord van een beheerder invoeren .
Net zoals in die besturingssystemen gebruikt Linux de opdracht sudo als een muur tussen normale taken en admin-taken, zodat je zeker moet bevestigen dat je wilt doen wat het ook is dat de opdracht zal uitvoeren. Nog meer vergelijkbaar is de opdracht runas in Windows; Net als in Linux werkt de opdracht runas vanaf de opdrachtregel om een bestand met referenties van een bepaalde gebruiker, vaak een beheerder, te starten.
Tip: Als je niet zeker weet of je sudo of su gebruikt, kijk dan naar het volgende teken op de opdrachtregel. Als het een hekje is (#), bent u aangemeld als root.
Over het Sudo-commando
In Linux staat sudo (uitgesproken als "sue dough") een systeembeheerder toe om bepaalde gebruikers of groepen gebruikers de mogelijkheid te geven sommige of alle commando's als root uit te voeren tijdens het loggen van alle commando's en argumenten. Het is echter geen vervanging voor de shell.
Wanneer u "sudo" voor een willekeurige opdracht in terminal plaatst, wordt het volgende uitgevoerd met verhoogde machtigingen. Daarom is het de oplossing om gerelateerde fouten te bevoorrechten. Dit is vereist als u opdrachten wilt uitvoeren die als administratieve taken worden beschouwd.
Sudo opereert per opdracht. Functies omvatten de mogelijkheid om de opdrachten die een gebruiker per host kan uitvoeren te beperken, uitgebreide logboekregistratie van elk commando om een duidelijk auditspoor te geven van wie wat deed, een configureerbare time-out van het sudo-commando en de mogelijkheid om hetzelfde te gebruiken configuratiebestand op veel verschillende machines.
Sudo Command-voorbeeld
Een standaardgebruiker zonder beheerdersrechten kan een Linux-opdracht invoeren om een stukje software te installeren:
dpkg -i software.deb
De opdracht retourneert een foutmelding omdat een persoon zonder beheerdersbevoegdheden geen toestemming heeft om software te installeren. Het commando sudo komt echter te hulp. In plaats daarvan is de juiste opdracht voor deze gebruiker:
sudo dpkg -i software.deb
Deze keer installeert de software. Hierbij wordt ervan uitgegaan dat iemand met beheerdersrechten Linux al eerder heeft geconfigureerd om de gebruiker toe te staan software te installeren of, als daarom wordt gevraagd met een wachtwoord, dat het wachtwoord correct is ingevoerd.
Notitie: U kunt Linux ook configureren om te voorkomen dat sommige gebruikers de opdracht sudo kunnen gebruiken.