4Aug

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-fördelningar använder som standard olika konfigurationer.

Root-användaren

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 växlar 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 det för att växla till något användarkonto. Om du utför

su bob -kommandot blir du uppmanad att ange Bobs lösenord och skalet ska byta till Bobs användarkonto.

När du är klar med att köra kommandon i rotskalet ska du skriva exit för att lämna rotskalet och gå tillbaka till begränsat privilegierläge.

Sudo kör ett enda kommando med root privilegier. När du kör sudo-kommandot , uppmanar systemet dig till ditt nuvarande användarkonto lösenord innan du kör -kommandot som root-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 nyckelfaktor 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 root-användarnamn.

Ubuntu vs andra Linux-distributioner

Su-kommandot är det traditionella sättet att förvärva rootbehö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 rotkontot.

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.

Distributioner baserade på Ubuntu, inklusive Linux Mint, använder också sudo istället för su som standard.

Några tricks

Linux är flexibel, så det tar inte mycket jobb 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 'command'

Detta liknar att du kör ett kommando med sudo, men du behöver root-kontoens lösenord istället för din nuvarande användarekontoens 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.

Aktivera root-användaren 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 mot detta.

sudo passwd root

Sudo frågar 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 hel 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 designerar automatiskt användarkontot som skapats under installationen som ett administratörskonto.

Om du använder en annan Linux-distribution kan du bevilja användarbehörighet att använda sudo genom att köra visudo -kommandot med root-privilegier( så kör su först eller använd su -c ).

Lägg till följande rad i filen, ersätt -användaren med namnet på användarkontot:

-användare ALL =( ALL: ALL) ALT

Tryck Ctrl-X och sedan 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 har automatiskt 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 för 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 föredragna 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åde om du använder olika Linux-distributioner.