Vad är skillnaden mellan Sudo och Su i Linux?
Om du är en Linux-användare har du antagligen sett referenser till både sudo och su. Artiklar här om hur-till-geek och på annat håll instruerar Ubuntu-användare att använda sudo och andra Linux-distributioners användare att använda su, men vad är skillnaden?
Sudo och su är två olika sätt att få root privilegier. Varje funktion på ett annat sätt, och olika Linux-distributioner använder som standard olika konfigurationer.
Root User
Både su och sudo används för att köra kommandon med root behörigheter. Rotenanvändaren är i grunden ekvivalent med administratörsanvändaren på Windows - rootanvändaren har maximala behörigheter och kan göra något för systemet. Vanliga användare på Linux kör med minskade behörigheter - till exempel kan de inte installera programvara eller skriva till systemkataloger.
För att göra något som kräver dessa behörigheter måste du förvärva dem med su eller sudo.
Su vs Sudo
Su-kommandot byter till superbruker- eller root-användaren - när du kör det utan några ytterligare alternativ. Du måste ange lösenordet för rootkontot. Det här är inte allt su-kommandot gör, men du kan använda den för att växla till något användarkonto. Om du utför su bob kommando, kommer du att uppmanas att ange Bobs lösenord och skalet byter till Bobs användarkonto.
När du är klar med att köra kommandon i rotskalet ska du skriva utgång att lämna rotskalet och gå tillbaka till begränsat privilegier läge.
Sudo kör ett enda kommando med root privilegier. När du kör sudo-kommandot, systemet uppmanar dig till ditt nuvarande användarkonto lösenord innan du kör kommando som roten användare. Som standard kommer Ubuntu ihåg lösenordet i femton minuter och kommer inte att begära ett lösenord igen tills de femton minuterna är uppe.
Detta är en viktig skillnad mellan su och sudo. Su växlar dig till root-användarkontot och kräver root-kontoens lösenord. Sudo kör ett enda kommando med root-privilegier - det växlar inte till root-användaren eller kräver ett separat lösenord för root-användare.
Ubuntu vs andra Linux-distributioner
Su-kommandot är det traditionella sättet att förvärva root-behörigheter på Linux. Sudo-kommandot har funnits länge, men Ubuntu var den första populära Linux-distributionen för att bara gå sudo-only. När du installerar Ubuntu skapas standardrotskontot, men inget lösenord är tilldelat det. Du kan inte logga in som root tills du tilldelar ett lösenord till root-kontot.
Det finns flera fördelar med att använda sudo istället för su som standard. Ubuntu-användare måste bara tillhandahålla och komma ihåg ett enda lösenord, medan Fedora och andra distributioner kräver att du skapar separata lösenord för lösenord och användarkonto under installationen.
En annan fördel är att det avskyr användarna från att logga in som root-användare - eller använda su för att få ett rotskal - och hålla rotskalet öppet för att göra sitt normala arbete. Kör färre kommandon som root ökar säkerheten och förhindrar oavsiktliga systemövergripande ändringar.
Fördelningar baserade på Ubuntu, inklusive Linux Mint, använder också sudo istället för su som standard.
Några tricks
Linux är flexibelt, så det tar inte mycket arbete för att göra su på samma sätt som sudo - eller vice versa.
För att köra ett enda kommando som root-användare med su, kör följande kommando:
su -c "kommando"
Det här liknar att du kör ett kommando med sudo, men du behöver root-lösenordet istället för ditt lösenord för ditt lösenord.
För att få ett komplett rotationsskal med sudo, kör sudo -i.
Du måste ange ditt nuvarande användarkonto lösenord istället för lösenordet för lösenordet för lösenordet.
Aktiverar Root User i Ubuntu
För att aktivera root-användarkontot på Ubuntu, använd följande kommando för att ange ett lösenord för det. Tänk på att Ubuntu rekommenderar detta.
sudo passwd root
Sudo kommer att be dig om ditt lösenord för ditt lösenord innan du kan ange ett nytt lösenord. Använd ditt nya lösenord för att logga in som root från en terminal inloggningsprompt eller med su-kommandot. Du bör aldrig köra en fullständig grafisk miljö som root-användare - det här är en mycket dålig säkerhetspraxis, och många program kommer att vägra att fungera.
Lägga till användare till Sudoers-filen
Endast administratörstypkonton i Ubuntu kan köra kommandon med sudo. Du kan ändra ett typ av användarkonto i konfigurationsfönstret för användarkonton.
Ubuntu anger automatiskt användarkontot som skapats under installationen som ett administratörskonto.
Om du använder en annan Linux-distribution kan du ge användarbehörighet att använda sudo genom att köra visudo kommando med root privilegier (så kör su första eller användning su-c).
Lägg till följande rad i filen, ersätt användare med namnet på användarkontot:
användare ALL = (ALL: ALL) ALLA
Tryck Ctrl-X och då Y för att spara filen. Du kan också lägga till en användare i en grupp som anges i filen. Användare i de grupper som anges i filen kommer automatiskt att ha sudo-privilegier.
Grafiska versioner av Su
Linux stöder också grafiska versioner av su, som ber om ditt lösenord i en grafisk miljö. Till exempel kan du köra följande kommando för att få en grafisk lösenordsprompt och köra Nautilus-webbläsaren med root behörigheter. Tryck Alt-F2 att köra kommandot från en grafisk kördialog utan att starta en terminal.
gksu nautilus
Gksu-kommandot har också några andra knep på ärmen - det bevarar dina nuvarande skrivarinställningar, så grafiska program ser inte ut på plats när du startar dem som en annan användare. Program som gksu är det bästa sättet att starta grafiska applikationer med root-privilegier.
Gksu använder antingen en su- eller sudo-baserad backend, beroende på Linuxdistributionen du använder.
Du borde nu vara beredd att möta både su och sudo! Du kommer att stöta på båda om du använder olika Linux-distributioner.