Hur att Styra sudo Tillgång på Linux

0
481
Fatmawati Achmad Zaenuri/Shutterstock

Kommandot sudo kan du köra kommandon på Linux som om du var någon annanstans, till exempel rot. sudo kan du också styra vem som kan komma åt roten kapacitet, med precision. Ger användare fullständig åtkomst eller låt dem använda en liten del av kommandon. Vi visar dig hur.

sudo och Root-Behörigheter

Vi har alla hört (förenkling) att allt i Linux är en fil. I sanning, nästan allt i operativsystemet från processer, filer, kataloger, uttag och ledningar tala till kärnan genom en fil deskriptor. Så även om allt inte är en fil, de flesta operativsystem objekt hanteras som om de vore. Där så är möjligt, design av Linux och Unix-liknande operativsystem följa denna princip.

Begreppet “allt är en fil” är långtgående i Linux. Det är lätt att se då, hur filrättigheter i Linux blev en av stöttepelarna av behörigheter och rättigheter. Om du äger en fil eller katalog (en speciell typ av fil), du kan göra vad du vill med den, inklusive redigera, byta namn på, flytta och ta bort det. Du kan också ställa in behörigheterna för filen så att andra användare eller grupper av användare kan läsa, ändra eller exekvera filen. Alla styrs av dessa behörigheter.

Alla som är, bortsett från superuser, känd som root. Root-kontot är ett speciellt konto. Det är inte bundna av att du har behörighet till något av de objekt i operativsystemet. Root-användaren kan göra något för något, och ganska mycket som helst.

Naturligtvis, vem som helst med tillgång till root-lösenordet kan göra samma sak. De skulle kunna utlösa förödelse antingen uppsåtligt eller av misstag. I själva verket, root-användaren kan utlösa förödelse genom att göra ett misstag också. Ingen är ofelbar. Det är farliga saker.

Det är därför som det är nu anses vara bästa praxis att inte logga in som root på alla. Logga in med ett vanligt användarkonto och använda sudo för att höja din privilegier för den korta tid du behöver dem. Ofta är det bara för att utfärda ett enda kommando.

RELATERAT: Vad Betyder “Allt Är en Fil” Betyder i Linux?

Den sudoers Lista

sudo redan var installerat på Ubuntu 18.04.3, Manjaro 18.1.0, och Fedora 31 datorer som används för att undersöka denna artikel. Detta är inte en överraskning. sudo har funnits sedan början av 1980-talet och har blivit standard att superuser drift för nästan alla fördelningar.

När du installerar en modern distribution, den användare som du skapar under installationen läggs till i en lista över användare som kallas sudoers. Dessa är de användare som kan använda kommandot sudo. Eftersom du har sudo befogenheter, du kan använda dem för att lägga till andra användare i listan över sudoers.

Naturligtvis är det oansvarigt att dela ut full superanvändare willy-nilly, eller till någon som bara har en partiell eller särskilda behov. Den sudoers listan kan du ange vilka kommandon som de olika användarna är tillåtna att använda sudo med. På det sättet, behöver du inte ge dem nycklarna till riket, men de kan fortfarande utföra vad de behöver göra.

Kör ett Kommando som en Annan Användare

Ursprungligen hette “superuser do”, eftersom du skulle kunna göra saker som superuser. Dess tillämpningsområde har utvidgats nu, och du kan använda sudo för att utföra ett kommando som om du var någon användare. Det har varit ändras för att återspegla att ny funktionalitet. Det är nu som heter “superuser do.”

Att använda sudo för att köra ett kommando som en annan användare, måste vi använda den -u (user) alternativ. Här kommer vi köra kommandot whoami som användaren maria. Om du använder kommandot sudo utan att väljaren-u, du kör kommandot som root.

Och naturligtvis, eftersom du använder sudo du kommer att bli ombedd att ange ditt lösenord.

sudo -u maria whoami

Svar från whoami berättar att användarens konto kör kommandot är maria.

Du kan använda kommandot sudo för att logga in som en annan användare utan att känna till deras lösenord. Du kommer att bli ombedd att ange ditt lösenord. Vi behöver använda den -jag (logga in) alternativ.

sudo -i-u maria
pwd
whoami
ls -hl
avsluta

Du är inloggad som mary. Den “.bashrc”, “.bash_aliases”, och “.profil” – filer för mary användarkonto behandlas precis som om ägaren av mary användarkonto hade loggat in sig.

  • Kommandotolken ändras för att återspegla detta är en session för användarkonto maria.
  • Den pwdcommand reprots som du är nu i marias hem en katalog.
  • whoami berättar du använder användarkonto maria.
  • Filerna i katalogen hör till mary användarkonto.
  • Kommandot exit för att återgå till ditt vanliga användarkonto session.

Redigera Fil sudoers

Att lägga till användare till lista av personer som kan använda sudo , behöver du redigera sudoers fil. Det är mycket viktigt att du alltid bara göra det med hjälp av den visudo kommando. Den visudo kommandot förhindrar att flera människor från att försöker att redigera sudoers fil på en gång. Det utför också kontrollera syntax och parsning på innehållet i filen när du sparar dem.

Om dina redigeringar inte har klarat tester, filen är inte blint sparas. Du får alternativ. Du kan avbryta och överge ändringarna, gå tillbaka och redigera den ändras igen eller kraft den felaktiga ändringar att sparas. Det sista alternativet är en riktigt dålig idé. Bli inte frestad att göra det. Du kan hitta dig själv i en situation där alla är av misstag låst av att använda sudo.

Även om du börjar redigeringen med visudo kommando, visudo är inte en editor. Det kräver att en av dina befintliga redaktörer att utföra filen redigeringar. Om Manjaro och Ubuntu, visudo kommandot lanserade den enkla editorn nano. På Fedora, visudo lanserade mer kan—men mindre intuitivt—vim.

RELATERAT: Hur att Avsluta Vi eller Vim Redaktör

Om du föredrar att använda nano för Fedora, kan du enkelt göra det. Börja med att installera nano:

sudo dnf installera nano

Och sedan visudo hade åberopas med detta kommando:

sudo EDITOR=nano visudo

Som ser ut som en bra kandidat för ett alias. Nano-editor öppnas med sudoers filen som har laddats i det.

Att lägga till Användare till sudo-Gruppen

Använd visudo att öppna sudoers fil. Antingen använda kommandot eller den som beskrivs ovan för att ange redaktör för ditt val:

sudo visudo

Bläddra igenom sudoers filen förrän du se definitionen av %sudo inlägg.

Andelen tecken tyder på att detta är en grupp definitionen och inte en användare definition. På vissa fördelningar %sudo linje har en hash # i början av raden. Detta gör att raden är en kommentar. Om detta är fallet, ta bort hash och spara filen.

Den %sudo linje delas in så här:

  • %sudo: namnet på gruppen.
  • ALLA=: Denna regel gäller för alla värdar på nätverket.
  • (ALL:): medlemmar av denna grupp kan köra kommandon som alla användare och alla grupper.
  • Allamedlemmar i denna grupp kan köra alla kommandon.

Att omformulera för att något, medlemmar av denna grupp kan köra något kommando, som en användare eller grupp, på datorn eller på någon annan värd i detta nätverk. Så ett enkelt sätt att ge någon root-privilegier och förmågan att använda sudo, är att lägga till dem i sudo-gruppen.

Vi har två användare, Tom och Mary, med användarkonton tom och mary respektive. Vi kommer att lägga till användarkontot tom till sudo-gruppen med usermod-kommandot. -G (grupper) anger vilken grupp vi kommer att lägga till tom hänsyn till. -En (lägg till) alternativet lägger till denna grupp till listan av grupper som användaren konto tom redan. Utan det här alternativet användarkonto tom skulle placeras i den nya gruppen, men bort från alla andra grupper.

sudo usermod -a-G sudo tom

Låt oss kontrollera vilka grupper Mary är i:

grupper

Användarkontot mary är bara i mary-gruppen.

Låt oss kolla med Tom:

grupper

Tom användarkonto—och därför, Tom—är i grupper tom och sudo.

Låt oss försöka få Maria att göra något som kräver sudo-rättigheter.

sudo less /etc/shadow

Mary kan inte titta i den bundna filen “/etc/shadow.” Hon får en mild berättar off för att försöka använda sudo utan tillstånd. Låt oss hur Tom biljettpriser:

sudo less /etc/shadow

Så snart som Tom kommer in sitt lösenord, han är visat att /etc/shadow-filen.

Bara genom att lägga till honom till sudo-gruppen, han upphöjts till eliten leden av dem som kan använda sudo. Helt fritt.

Ge Användare med Begränsad sudo-Rättigheter

Tom har fått full sudo-rättigheter. Han kan göra något för att rot—eller någon annan i sudo-gruppen—kan göra. Som kan ge honom mer makt än du är glad att lämna över. Ibland är det ett krav för en användare att utföra en uppgift som kräver root-privilegier, men det är inte ett berättigat mål för dem att ha full sudo tillgång. Du kan uppnå denna balans genom att lägga till dem till sudoers fil och en förteckning över de kommandon som de kan använda.

Låt oss träffa Harry, ägare av användarkonto harry. Han är inte i sudo-gruppen, och han har ingen sudo-rättigheter.

grupper

Det är användbart för att Harry ska kunna installera program, men vi vill inte att han ska ha full sudo-rättigheter. OK, inga problem. låt oss skjuta upp visudo:

sudo visudo

Rulla ner genom filen förrän du komma förbi koncernen definitioner. Vi kommer att lägga till en rad för Harry. Eftersom detta är en användare definition och inte en grupp definition, som vi inte behöver för att börja raden med ett procenttecken.

Posten för användarkontot harry är:

harry ALLT=/usr/bin/apt-get

Observera att det finns en flik mellan “harry” och “ALLA=.”

Detta lyder som användarkonto harry kan använda de listade kommandon på alla maskiner som är anslutna till det här nätverket. Det är ett kommando som anges, vilket är i “/usr/bin/apt-get.” Vi kan bevilja Harry tillgång till mer än ett kommando genom att lägga till dem till kommandoraden lista, separerade med kommatecken.

Lägg till linjen till sudoers fil, och spara filen. Om du vill kontrollera att linjen är syntaktiskt korrekta, kan vi be visudo att skanna filen och kontrollera syntax för oss, genom att använda-c (kolla bara) alternativ:

sudo visudo -c

De kontroller som sker och visudo rapporter om att allt är väl. Harry bör nu kunna använda apt-get för att installera programvara, men bör vägras om han försöker använda ett annat kommando som kräver sudo.

sudo apt-get install finger

Lämplig sudo-rättigheter har beviljats Harry, och han kan för att installera programvaran.

Vad händer om Harry försöker använda ett annat kommando som kräver att du sudo?

sudo avstängning nu.

Harry är förhindrad att köra kommandot. Vi har framgångsrikt gett honom viss, begränsad tillgång. Han kan använda de nominerade kommandot och inget annat.

Med hjälp av sudoers Användarens Alias

Om vi vill ge Mary samma privilegier, kunde vi lägga till en rad i sudoers fil på användarens konto mary på exakt samma sätt som vi gjorde med Harry. En annan, snyggare, sätt att uppnå samma sak är att använda en User_Alias.

i sudoers fil, en User_Alias innehåller en lista över användarens konto namn. Namnet på User_Alias kan sedan användas i en definition för att representera alla dessa användarkonton. Om du vill ändra behörigheter för dessa användarkonton, du har bara en linje som du vill redigera.

Låt oss skapa en User_Alias och använda det i våra sudoers fil.

sudo visudo

Bläddra ner i filen tills du kommer till User_Alias specifikation linje.

Lägg User_Alias genom att skriva:

User_Alias INSTALLATÖRER = harry, maria

Varje element är separerade med mellanslag, inte en flik. Logiken bryter ner som:

  • User_Alias: Detta säger visudo detta kommer att vara en User_Alias.
  • INSTALLATÖRER: Detta är ett godtyckligt namn för detta alias.
  • = harry, maria: Den lista med användare som du vill inkludera i denna alias.

Nu ska vi redigera den linje som vi har lagt tidigare på användarens konto harry:

harry ALLT=/usr/bin/apt-get

Ändra det så att det lyder:

INSTALLATÖRER ALLA=/usr/bin/apt-get

Detta innebär att alla konton som ingår i definitionen av “INSTALLATÖRER” User_Alias kan köra apt-get-kommando. Vi kan testa detta med Maria, som bör nu kunna installera programvaran.

sudo apt-get install colordiff

Mary är att kunna installera programvaran på grund av att hon är i “INSTALLATÖRER” User_Alias, och att User_Alias har fått dessa rättigheter.

Tre Snabba sudo Tricks

När du glömmer att lägga sudo för att ett kommando, typ

sudo !!

Och det sista kommandot kommer att upprepas med sudo läggas till början av raden.

När du har använt kommandot sudo och verifieras med ditt lösenord kommer du inte att kunna använda dina lösenord med ytterligare sudo-kommandon för 15 minuter. Om du vill ha din autentisering glömt direkt, använd:

sudo -k

Någonsin undrar om du kan se misslyckats med kommandot sudo försök? De går till “/var/log/auth.logga in” – fil. Du kan visa det med:

mindre /var/log/auth.logga in

Vi kan se inlägg om användarkonto maria som var inloggad vid TTY pts/1 när hon försökte köra kommandot shutdown som användaren “root”.

Med Stor Makt…

…kommer förmågan att delegera delar av det till andra. Nu vet du hur du ge andra användare selektivt.

LÄS NÄSTA

  • “Hur DNS Över HTTPS (DoH) Kommer att Öka Integritet på Nätet
  • “Exklusivt Erbjudande: Laddning Ansluta till och Utöka Din MacBook med denna $29 7-i-1 USB-C Nav-Adapter
  • “Hur till Ändra Din Google-Stadion Användarnamn och Avatar
  • “Hur att Skanna ett Dokument i Windows 10
  • “Hur man Använder Kommandot ps att Övervaka Linux Processer