omfattende guide til å Mestre Sudoers Fil.

– >

Harsha Koushik

Følg

Apr 18, 2020 · 10 min lese

Hva er Sudoers Fil?

Sudoers filen er akkurat som alle andre filer på Linux Operativsystem., Men det spiller en viktig rolle i forvaltningen av hva en «Bruker» eller «Brukere i en Gruppe» kan gjøre på systemet.

Hvorfor navnet Sudoers?

ordet Sudo er forkortelse for begrepet «Super Brukeren Gjøre». Som det klart antyder — det er akkurat som å fortelle Kernel/OS «du har ikke noe valg, bare gjør det!». Så brukerne med Sudo tillatelse er kalt Sudo Brukere. Styring av alle disse sudo brukere er gjort gjennom en fil kalt Sudoers Fil. Denne filen bor også i /etc-katalogen, akkurat som alle andre konfigurasjonsfilen.,

Bilde 1. Sudoers fil i /etc-katalogen. Operativsystem : Kali Linux 2019.4

Hvorfor Sudoers Fil?

En vanlig bruker på Linux har mange begrensninger i systemet. For eksempel — brukeren vil ikke være i stand til å starte en tjeneste, kan du endre en config fil eller kjøre et skript på systemet som standard. Fra et sikkerhetssynspunkt denne ser perfekt ut.,

Men, la oss ta et eksempel — du som et system admin har til å håndtere alle brukere og deres kontroller. Har du et nettsted som er vert på Apache i en av dine servere. Du har allerede en Web-Administrator for å administrere det. En bruker bør være skapt for ham på Web-Serveren. Denne Brukeren skal få lov til å gjøre to ting som en vanlig bruker ikke :

  • Start/Restart Apache-Tjenesten i tilfelle det stopper.
  • Redigere konfigurasjonsfilen til Apache.

Du har to alternativer som standard :

  1. Root-Brukeren som har fått alle tillatelser på systemet, inkludert Apache.,
  2. En vanlig bruker, som standard vil ikke være i stand til å Starte en Tjeneste eller redigere config filer på systemet.

Dette er da en sudoers filen vil komme godt til deg. I Sudoers filen kan vi definere nøyaktig :

  • Web-Admin-brukeren kan bare starte Apache-Tjenesten &
  • Han kan bare redigere Apache-Config-filen.

du Spiller med Sudoers Fil

Nok teori, vil vi begynne å gjøre den virkelige ting nå. Jeg vil forklare hver seksjon i Sudoers-fil med noen eksempler., Som standard en Sudoers-fil ser slik ut —

– >

Bilde-2. Uredigerte Sudoers Fil. Operativsystem: Kali Linux 2019.4

først og Fremst kan vi se fem seksjoner i fil — de tre første avsnittene i filen er i slekt å ALIAS av Host -, Bruker-og Cmnd., Vi vil snakke om ALIAS senere, først la oss snakke om core-delen :

#Bruker Privilegium Spesifikasjon

root ALLE = (ALLE:ALLE) ALLE

Merk: ‘#’ indikerer kommentar i filen, OS vil ignorere denne linjen under utføring.,

Syntaks : Brukeren <plass> OnHost = (Runas-Bruker:Gruppe) <plass> Kommandoer

Eksempel: root ALLE = (ALLE:ALLE) ALLE

Les det som Brukeren Root kan Kjøre en Kommando som en Bruker fra en Gruppe på en Vert.

→ Den første brukes til å definere, ALLHERS gud. Vi kan definere Hostname/Ip-Adresse i stedet for ALLE. ALLE betyr en vert.

→ Andre ALLE : Tredje ALLE er Bruker:Gruppe., I stedet for ALT vi kan definere User eller User med gruppen som Brukeren:Gruppe. ALLE:ALLE betyr at Alle brukere og grupper.

→ Siste ALLE er Kommandoen. I stedet for ALLE, kan vi definere en kommando eller et sett med kommandoer. ALLE betyr alle kommandoer.

for Å si det veldig enkelt, det er «hvem der = (as_whom) hva».

Merk: de Fleste folk forstår VERTENE som eksterne VERTER. Det er den LOKALE HOSTNAME/IP-ADRESSE., VERTENE feltet vil bli lite brukt, hvis du ønsker å vite mer om VERTENE i Sudoers vennligst se → https://www.sudo.ws/man/1.7.10/sudoers.man.html

i Utgangspunktet kan vi tillate en bruker å gjøre noe i bare to måter —

– >

  1. Direkte gi ham tillatelse til å utføre kommandoen ved å endre tillatelse av filen.
  2. Tillat ham å utføre kommandoen, som en annen bruker som allerede har tillatelse til å utføre denne kommandoen.

I Sudoers filen vi vil være å implementere den sistnevnte.,

Vi vil bruke et annet eksempel å forstå felt i syntaks:

Eksempel : sysadmin ALLE = (root) /usr/bin/cat /etc/shadow

Les dette som en — Bruker «sysadmin» kan du Kjøre kommandoen «/usr/bin/cat /etc/shadow» som brukeren ROOT på alle VERTENE.

Her i eksempelet ovenfor, i kommandoen delen — jeg har lagt til noe mer enn en kommando, dette er for å vise fleksibilitet i Sudoers fil. Den delen «/usr/bin/katt» er en binær kjørbar eller en kommando som brukes til å vise innholdet i en fil., Den delen «/etc/shadow» er en konfidensiell fil som lagrer passord, så betyr det at brukeren «sysadmin» bare kjør «/usr/bin/katt» på «/etc/shadow» – filen, hvis brukeren prøver å vise innholdet av en annen fil som han har ingen lesetillatelser på, han vil ikke være i stand til.,

Syntaksen for kommandoen Sudo: sudo <kommandoen>

Eksempel: sudo cat /etc/shadow

Nå hvis brukeren «sysadmin» bruker sudo før noen kommando, OS vil først spørre ham Brukerne Passord, bekrefter passordet og deretter går til Sudoers filen og sjekker om han får lov til å utstede denne kommandoen som en hvilken som helst bruker. Hvis han er tillatt — suksess, ellers vil rapportere tilbake om en av disse to tingene —

– >

→ Brukeren er ikke i Sudoers fil. Denne hendelsen vil bli rapportert.,

Note : You can see this reported incident in /var/log/auth.log

Image-3. Incident Report — Sudoers. Operating System: Kali Linux 2019.,4

→Sorry, user <username> is not allowed to execute <command> as <User> on <hostname>

Image-4. Cannot Execute Command in Sudoers. Operating System: Kali Linux 2019.,4

Her bruker nettadmin er kun tillatt å kjøre «cat /etc/shadow». Men han prøvde å kjøre ‘katt’ – kommandoen på «/etc/gshadow» som ikke er tillatt.

når vi har fått nok grep på feltene i syntaksen av Sudoers fil, la oss gå videre og forstå andre seksjoner i filen. Alle de andre avsnittene vil avhenge av core-delen som vi allerede diskutert.,

Den neste delen er GRUPPE-Seksjonen, som er

#Tillate medlemmer av gruppen sudo for å utføre en kommando

%sudo ALLE = (ALLE:ALLE) ALLE

– Persentilen symbolet ‘%’ er som brukes til å representere en gruppe i Sudoers Fil. Alle feltene og deres funksjoner i denne delen er akkurat det samme som diskutert i forrige avsnitt — delen bruker. Vi kan tilordne den samme Sudo-Rettigheter til en gruppe i stedet for en bruker ved å angi navnet på gruppen — %<gruppe navn>., Så alle medlemmene i gruppen vil arve det samme privilegier som er gitt til konsernet.

standard det finnes en SUDO gruppe som er definert i Sudoers fil. Vi kan se disse tillatelsene er nøyaktig det samme som ROOT brukere tillatelser i filen. Så hvis en bruker er medlem av dette SUDO gruppen, han kan utføre alle kommandoene som en ROOT-brukeren kan utføre.

La oss definere et egendefinert gruppe og forstå syntaks mer tydelig. La oss ta den samme gamle System Admin eksempel å gjøre det. Anta no. av ansatte er mer nå, så Systemet Admins er 3 nå., Hver av disse trenger nøyaktig samme tillatelser som vi hadde gitt til det første System Admin. En ting vi kan gjøre for å oppnå dette har tre oppføringer for alle de tre System Admins i Sudoers fil. Hvis vi går med denne tilnærmingen, vi er fornærmende egenskapene til en Sudoers Fil.

Den Beste tingen å gjøre er å gruppere alle de tre System Admins inn i en gruppe som heter ‘SystemAdminGroup’., Vi vil angi de nødvendige tillatelser på denne gruppen med —

– >

%SystemAdminGroup ALLE = (root) /usr/bin/cat /etc/shadow

Nå er alle tre administratorer kan utføre Privilegert Kommando. Vi gjorde dette på en gang ved hjelp av Konsernet Definisjon.

Sudoers Filen er i stand til å gjøre hele denne prosessen mer effektiv ved hjelp av ulike funksjoner. De første tre deler — ALIASER er brukt for å oppnå dette., Som ordet allerede antyder, kan vi bruke et ALIAS til noe som vi kan bruke i hele filen, det er akkurat som en GLOBAL VARIABEL i et Skript. Hvordan fungerer dette gjør det hele mer effektiv? Vi kan definere sett av kommandoer, verter og brukere på én linje, og vi tildele denne linjen til et ALIAS navn, alias vil bli brukt når og hvor det trengs uten å definere alle kommandoer/hosts/brukere over igjen.

jeg ønsker å inkludere en mer ALIAS som ikke er oppført i Sudoers-fil som standard som er «Run_as ALIAS»., Nå har vi fire ALIASER —

– >

  1. Bruker ALIASET som User_Alias
  2. Kjør-Som ALIAS som Runas_Alias
  3. være Vert ALIAS som Host_Alias
  4. Kommando ALIAS som Cmnd_Alias

Merk : Alias-navn skal være definert i store bokstaver, og kan inneholde tall, bokstaver og understrek (_). Alias navn må starte med alfabetet.,3e»>ALIAS-Navn> = <brukernavn>,<brukernavn>, <brukernavn>…

Eksempel: User_Alias SYSADMINS = john,tim,tom

Bruk: SYSADMINS ALLE = (rot) /usr/bin/cat /etc/shadow

Hvis jeg vil ha noen sett med sudo tillatelsene som er definert for brukerne — john, tim og tom, jeg trenger ikke angi det tre ganger, i stedet jeg kan definere et Alias og bruke denne Alias Navn, mens delegering av sudo-tilgang til dem.,

Image-5. User Alias in Sudoers File. Operating System: Kali Linux 2019.,figcaption>

Run As ALIAS Syntax —

Runas_Alias <ALIAS Name> =<username>,<username>,<username>…

Example: Runas_Alias MGRS = root,sradmin

Usage: systemadmin ALL = (MGRS) /usr/bin/cat /etc/shadow

If i want to define the set of users a user can run a command as, i can use Runas_Alias., Ikke bli forvirret her, bare husk master mantra — som der = (as_whom) hva. Vi bruker et alias her for å inkludere. brukere i «as_whom» – feltet.

Bilde-6. Runas Alias i Sudoers Fil. Operativsystem: Kali Linux-2019.,4

Vert ALIAS Syntaks —

– >

Bruk: systemadmin VERTER = (root) /usr/bin/cat /etc/shadow

Hvis jeg har behov for å definere sett vertsnavn, ip-adresser eller ip-adresse rekkevidde på som en bruker har lov til å utstede Privilegert/Sudo kommandoer, jeg kan oppnå dette ved å være Vert Alias. Igjen, er denne delen hører til «der» – feltet i Master Uttrykk.

Bilde-7. Vert Alias i Sudoers Fil., Operativsystem: Kali Linux-2019.,iv id=»1ffdf0e914″>

Cmnd_Alias <ALIAS Name> = <cmd1>,<cmd2>, <cmd3>…

Example: Cmnd_Alias SYSADMIN = /usr/sbin/apache2, /usr/bin/cat

Usage: systemadmin ALL = (root) SYSADMIN

If i need to permit a user to execute a set of commands as SUDO, i can define them under a Cmnd_Alias Section and use this ALIAS name while delegating the access., Denne delen hører til «det» feltet i Master Uttrykk.

Bilde-8. Cmnd Alias i Sudoers Fil. Operativsystem: Kali Linux 2019.4

NOPASSWD-Modus:

Dette er en mer spesiell funksjon i Sudoers som vil tillate en Bruker i Sudoers fil for å utføre en privilegert kommando uten å skrive inn passord., Dette er svært nyttig når du kjører automatiserte skript i systemet som en vanlig bruker, kan det hende at skriptet har til å utføre en privilegert kommando. Men vi vet allerede hva som skjer hvis du bruker SUDO, er han nødt til å oppgi sitt passord!

Husk at selv om det er et skript eller en prosess, det skal kjøres SOM EN BRUKER, det kan ikke kjøre på egen hånd.

Alle de automatiserte skript er ikke intelligent nok til å skrive inn passord når du blir bedt om det. Men det er mulig å automatisk-angi passordet. For tiden la oss ikke tenke på intelligent skript., Så for å konkludere, en privilegert kommandoen kan brukes av en Bruker uten å skrive inn passord.

Eksempel på et script som trenger NOPASSWD: Veileder i Linux.Vi vil diskutere om Veileder i en annen artikkel.

Syntaks : sysadmin ALLE = (root) NOPASSWD : /usr/sbin/apache2

– Parameteren Eksklusjon i ALIASER

Vi kan også legge til parametere som bør være utelukket i ALIASER. For eksempel —

– >

User_Alias EXCEPT_ROOT = ALLE !,root

sysadmin ALLE = (EXCEPT_ROOT) /usr/sbin/apache2

Dette User_Alias kan brukes til å sørge for at en BRUKER kan utføre den angitte kommandoen som «alle brukere, unntatt ROOT».

Denne typen utelukkelse kan gjøres i alle ALIASENE, ikke bare User_Alias. I noen ALIAS, utelukkelse syntaksen er den samme.

Håndtering Sudoers Fil med Forsiktighet

nå må du ha forstått hva en Sudoers fil kan gjøre og hvor viktig det er å håndtere filen med Forsiktighet. Linux allerede implementerer en mekanisme for å sørge for at Sudoers filen er håndtert på riktig måte.,

Det er alltid anbefalt IKKE Å REDIGERE /etc/sudoers filen DIREKTE. Det er et verktøy kalt «visudo». Dette brukes til å trygt gjøre endringer i en sudoers fil. Når du redigerer sudoers-fil ved hjelp av visudo, visudo har en innebygget funksjonalitet for å sjekke syntaksen før du lagrer filen, hvis du gjør en feil, vil det umiddelbart punkt linje ut hvor syntaks er ikke riktig. Denne funksjonaliteten av visudo vil forhindre fra å forårsake utilsiktet skade på filen og system.

Konklusjon:

Sudoers filen spiller alltid en viktig rolle i User Control Management., Mens det er mange måter å administrere og kontrollere hva en bruker kan og ikke kan gjøre på systemet, Sudoers metode vil alltid være effektiv og robust nok til å håndtere og kontrollere alle nei. av brukere. Enda en metode som ligner på dette, som er verdt å nevne er SUID og SGID. Vi vil snakke om SUID og SGID i en annen artikkel.