4Aug

Wat is het verschil tussen Sudo en Su in Linux?

Als u een Linux-gebruiker bent, hebt u waarschijnlijk verwijzingen naar zowel sudo als su gezien. Artikelen hier over How-To Geek en elders instrueren Ubuntu-gebruikers om gebruikers van sudo en andere Linux-distributies te gebruiken om su te gebruiken, maar wat is het verschil?

Sudo en su zijn twee verschillende manieren om rootprivileges te verkrijgen. Elke functie werkt op een andere manier en verschillende Linux-distributies gebruiken standaard verschillende configuraties.

De rootgebruiker

Zowel su en sudo worden gebruikt voor het uitvoeren van opdrachten met rootrechten. De root-gebruiker is in principe hetzelfde als de beheerder-gebruiker in Windows: de root-gebruiker heeft de maximale rechten en kan alles aan het systeem doen. Normale gebruikers op Linux draaien met beperkte rechten - ze kunnen bijvoorbeeld geen software installeren of naar systeemmappen schrijven.

Om iets te doen dat deze toestemmingen vereist, moet je ze verkrijgen met su of sudo.

Su vs. Sudo

De opdracht su schakelt naar de supergebruiker - of rootgebruiker - wanneer u het uitvoert zonder extra opties. U moet het wachtwoord van het root-account invoeren. Dit is echter niet alles wat su doet: u kunt het gebruiken om over te schakelen naar een gebruikersaccount. Als u de opdracht su bob uitvoert, wordt u gevraagd om het wachtwoord van Bob in te voeren en schakelt de shell naar het gebruikersaccount van Bob.

Als u klaar bent met het uitvoeren van opdrachten in de rootshell, moet u typen en afsluiten om de rootshell te verlaten en terug te gaan naar de modus beperkte privileges.

Sudo voert een enkele opdracht uit met rootprivileges. Wanneer u sudo-opdracht uitvoert, vraagt ​​het systeem u naar het wachtwoord van uw huidige gebruikersaccount voordat als de rootgebruiker -opdracht uitvoert. Ubuntu onthoudt het wachtwoord standaard een kwartier en vraagt ​​pas weer om een ​​wachtwoord als het vijftien minuten voorbij is.

Dit is een belangrijk verschil tussen su en sudo. Su schakelt u naar het root-gebruikersaccount en vereist het wachtwoord van het root-account. Sudo voert één enkele opdracht uit met rootprivileges: deze schakelt niet over naar de rootgebruiker of vereist een afzonderlijk rootgebruikerswachtwoord.

Ubuntu vs. andere Linux-distributies

Het su-commando is de traditionele manier om root-rechten op Linux te verkrijgen. De sudo-opdracht bestaat al lang, maar Ubuntu was de eerste populaire Linux-distributie die standaard sudo-only was. Wanneer u Ubuntu installeert, wordt het standaard root-account gemaakt, maar er is geen wachtwoord aan toegewezen. U kunt niet als root inloggen totdat u een wachtwoord toewijst aan het root-account.

Er zijn verschillende voordelen aan het standaard gebruiken van sudo in plaats van su. Ubuntu-gebruikers hoeven slechts één wachtwoord te verstrekken en te onthouden, terwijl je voor Fedora en andere distributies aparte root- en gebruikersaccountwachtwoorden moet maken tijdens de installatie.

Een ander voordeel is dat het gebruikers ontmoedigt om in te loggen als de root-gebruiker - of su te gebruiken om een ​​root-shell te krijgen - en de root-shell open te houden om hun normale werk te doen. Minder opdrachten uitvoeren als root verhoogt de beveiliging en voorkomt accidentele systeemwijzigingen.

Distributies op basis van Ubuntu, inclusief Linux Mint, gebruiken standaard ook sudo in plaats van su.

Een paar trucjes

Linux is flexibel, dus het kost niet veel moeite om su te laten werken op dezelfde manier als sudo - of omgekeerd.

Voer voor het uitvoeren van een enkele opdracht als root-gebruiker met su de volgende opdracht uit:

su -c 'command'

Dit lijkt op het uitvoeren van een opdracht met sudo, maar u moet het wachtwoord van het root-account gebruiken in plaats van uw huidige gebruikeraccount wachtwoord.

Voer sudo -i uit om een ​​volledige, interactieve rootshell te krijgen met sudo.

U moet het wachtwoord van uw huidige gebruikersaccount opgeven in plaats van het wachtwoord van het root-account.

De rootgebruiker inschakelen in Ubuntu

Om de rootgebruikersaccount op Ubuntu in te schakelen, gebruikt u de volgende opdracht om er een wachtwoord voor in te stellen. Houd er rekening mee dat Ubuntu dit afraadt.

sudo passwd root

Sudo zal u vragen om het wachtwoord van uw huidige gebruikersaccount voordat u een nieuw wachtwoord kunt instellen. Gebruik uw nieuwe wachtwoord om u als root aan te melden vanaf de aanmeldprompt van een terminal of met de opdracht su. U mag nooit een volledige grafische omgeving uitvoeren als de rootgebruiker - dit is een zeer slechte beveiligingspraktijk en veel programma's weigeren te werken.

Gebruikers toevoegen aan het Sudoers-bestand

Alleen beheerdersaccounts in Ubuntu kunnen opdrachten uitvoeren met sudo. U kunt het type van een gebruikersaccount wijzigen in het configuratievenster Gebruikersaccounts.

Ubuntu wijst automatisch de gebruikersaccount aan die tijdens de installatie is aangemaakt als een beheerdersaccount.

Als u een andere Linux-distributie gebruikt, kunt u een gebruiker toestemming verlenen om sudo te gebruiken door de -opdracht voor visudo uit te voeren met basisprivileges( dus voer eerst su uit of gebruik su -c ).

Voeg de volgende regel toe aan het bestand, ter vervanging van -gebruiker met de naam van het gebruikersaccount:

-gebruiker ALL =( ALL: ALL) ALL

Druk op Ctrl-X en dan Y om het bestand op te slaan. U kunt ook een gebruiker toevoegen aan een groep die in het bestand is opgegeven. Gebruikers in de groepen die in het bestand zijn opgegeven, hebben automatisch sudo-privileges.

grafische versies van Su

Linux ondersteunt ook grafische versies van su, die om uw wachtwoord vragen in een grafische omgeving. U kunt bijvoorbeeld de volgende opdracht uitvoeren om een ​​grafische wachtwoordaanwijzing te krijgen en de Nautilus-bestandsbrowser met rootrechten uit te voeren. Druk op Alt-F2 om de opdracht uit een grafisch dialoogvenster uit te voeren zonder een terminal te starten.

gksu nautilus

Het gksu-commando heeft nog een paar andere trucs in petto: het behoudt je huidige bureaubladinstellingen, dus grafische programma's zullen niet misstaan ​​als je ze als een andere gebruiker start. Programma's zoals gksu zijn de aangewezen manier om grafische applicaties te starten met rootprivileges.

Gksu gebruikt een su of sudo-gebaseerde backend, afhankelijk van de Linux-distributie die u gebruikt.

Je zou nu voorbereid moeten zijn om zowel su als sudo tegen te komen! Je zult beide tegenkomen als je verschillende Linux-distributies gebruikt.