Hvad er forskellen mellem Sudo og Su i Linux?

Hvis du er en Linux-bruger, har du sandsynligvis set referencer til både sudo og su. Artikler her om How-To Geek og andre steder instruerer Ubuntu-brugere om at bruge sudo- og andre Linux-distributionsbrugere til at bruge su, men hvad er forskellen?

Sudo og su er to forskellige måder at få rodprivilegier på. Hver fungerer på en anden måde, og forskellige Linux-distributioner bruger forskellige konfigurationer som standard.

Rootbrugeren

Både su og sudo bruges til at køre kommandoer med rodtilladelser. Rodbrugeren svarer stort set til administratorbrugeren på Windows - rodbrugeren har maksimale tilladelser og kan gøre alt for systemet. Normale brugere på Linux kører med reducerede tilladelser - for eksempel kan de ikke installere software eller skrive til systemmapper.

For at gøre noget, der kræver disse tilladelser, skal du erhverve dem med su eller sudo.

Su vs. Sudo

Kommandoen su skifter til superbrugeren - eller rodbrugeren - når du udfører den uden yderligere indstillinger. Du bliver nødt til at indtaste root-kontoens adgangskode. Dette er dog ikke alt, hvad su-kommandoen gør - du kan bruge den til at skifte til enhver brugerkonto. Hvis du udfører su bob- kommandoen, bliver du bedt om at indtaste Bobs adgangskode, og skallen skifter til Bobs brugerkonto.

Når du er færdig med at køre kommandoer i rodskallen, skal du skrive exit for at forlade rodskallen og gå tilbage til begrænset rettighedstilstand.

Sudo kører en enkelt kommando med rodrettigheder. Når du udfører sudo-kommando , beder systemet dig om din nuværende brugerkontos adgangskode, før du kører kommandoen som rodbruger. Som standard husker Ubuntu adgangskoden i femten minutter og beder ikke om en adgangskode igen, før de femten minutter er op.

Dette er en nøgleforskel mellem su og sudo. Su skifter dig til rodbrugerkontoen og kræver root-kontoens adgangskode. Sudo kører en enkelt kommando med rodrettigheder - den skifter ikke til rodbrugeren eller kræver en separat rootbrugeradgangskode.

Ubuntu vs. andre Linux-distributioner

Su-kommandoen er den traditionelle måde at erhverve rodtilladelser på Linux på. Sudo-kommandoen har eksisteret i lang tid, men Ubuntu var den første populære Linux-distribution, der som standard kun var sudo. Når du installerer Ubuntu, oprettes standard root-kontoen, men der tildeles ingen adgangskode. Du kan ikke logge ind som root, før du tildeler en adgangskode til rodkontoen.

Der er flere fordele ved at bruge sudo i stedet for su som standard. Ubuntu-brugere behøver kun at angive og huske en enkelt adgangskode, mens Fedora og andre distributioner kræver, at du opretter separate root- og brugerkontoadgangskoder under installationen.

En anden fordel er, at det afskrækker brugere fra at logge ind som rodbruger - eller bruge su til at få en rodskal - og holde rodskallen åben for at udføre deres normale arbejde. At køre færre kommandoer som root øger sikkerheden og forhindrer utilsigtede ændringer i hele systemet.

Distributioner baseret på Ubuntu, inklusive Linux Mint, bruger som standard også sudo i stedet for su.

Et par tricks

Linux er fleksibelt, så det tager ikke meget arbejde at få su til at fungere på samme måde som sudo - eller omvendt.

Hvis du vil køre en enkelt kommando som rodbruger med su, skal du køre følgende kommando:

su -c 'kommando'

Dette svarer til at køre en kommando med sudo, men du skal bruge root-kontoens adgangskode i stedet for din nuværende brugerkontos adgangskode.

For at få en fuld, interaktiv rodskal med sudo skal du køre sudo –i.

Du bliver nødt til at angive din nuværende brugerkontos adgangskode i stedet for rodkontoens adgangskode.

Aktivering af rodbrugeren i Ubuntu

For at aktivere rodbrugerkontoen på Ubuntu skal du bruge følgende kommando til at indstille en adgangskode til den. Husk, at Ubuntu anbefaler imod dette.

sudo passwd rod

Sudo vil bede dig om din nuværende brugerkontos adgangskode, før du kan indstille en ny adgangskode. Brug din nye adgangskode til at logge ind som root fra en terminal loginprompt eller med kommandoen su. Du skal aldrig køre et komplet grafisk miljø som rodbruger - dette er en meget dårlig sikkerhedspraksis, og mange programmer nægter at arbejde.

Tilføjelse af brugere til Sudoers-filen

Kun administratorkonti i Ubuntu kan køre kommandoer med sudo. Du kan ændre typen af ​​en brugerkonto fra konfigurationsvinduet til brugerkonti.

Ubuntu udpeger automatisk den brugerkonto, der er oprettet under installationen, som en administratorkonto.

Hvis du bruger en anden Linux-distribution, kan du give en bruger tilladelse til at bruge sudo ved at køre visudo- kommandoen med root-rettigheder (så kør su først eller brug su -c ).

Føj følgende linje til filen, og erstatt brugeren med navnet på brugerkontoen:

bruger ALLE = (ALLE: ALLE) ALLE

Tryk på Ctrl-X og derefter på Y for at gemme filen. Du kan muligvis også føje en bruger til en gruppe, der er angivet i filen. Brugere i de grupper, der er angivet i filen, har automatisk sudo-privilegier.

Grafiske versioner af Su

Linux understøtter også grafiske versioner af su, som beder om din adgangskode i et grafisk miljø. For eksempel kan du køre følgende kommando for at få en grafisk adgangskodeprompt og køre Nautilus-filbrowseren med rodtilladelser. Tryk på Alt-F2 for at køre kommandoen fra en grafisk køredialog uden at starte en terminal.

gksu nautilus

Gksu-kommandoen har også et par andre tricks på ærmet - den bevarer dine nuværende skrivebordsindstillinger, så grafiske programmer ser ikke ud af sted, når du starter dem som en anden bruger. Programmer som gksu er den foretrukne måde at starte grafiske applikationer med root-rettigheder på.

Gksu bruger enten en su- eller sudobaseret backend, afhængigt af den Linux-distribution, du bruger.

Du skal nu være parat til at støde på både su og sudo! Du støder på begge dele, hvis du bruger forskellige Linux-distributioner.