den omfattende vejledning til Master Sudoers fil.

Harsha Koushik

Følg

April 18, 2020 · 10 min læse

Hvad er det Sudoers?

Sudoers-filen er ligesom enhver anden fil på Linu. – operativsystemet., Men det spiller en afgørende rolle i forvaltningen af, hvad en “bruger” eller “brugere i en gruppe” kan gøre på systemet.

hvorfor navnet Sudoers?

ordet Sudo er forkortelsen af udtrykket “Super User Do”. Som det klart antyder-det er ligesom at fortælle kernen/OS “du har intet valg, bare gør det!”. Så brugerne med Sudo tilladelse kaldes som Sudo brugere. Forvaltning af alle disse sudo brugere sker gennem en fil kaldet som Sudoers fil. Denne fil lever også i mappen / etc ligesom enhver anden konfigurationsfil.,

Billede-1. Sudoers fil i / etc mappe. Operativsystem : Kali Linux 2019.4

Hvorfor Sudoers?

en normal bruger på Linu.vil have mange begrænsninger i systemet. For eksempel-brugeren vil ikke være i stand til at starte en tjeneste, ændre en konfigurationsfil eller udføre et script på systemet som standard. Fra et sikkerhedsperspektiv ser det perfekt ud.,

men lad os tage et eksempel på — du som systemadministrator skal administrere alle brugere og deres kontroller. Du har en hjemmeside hostet på Apache i en af dine servere. Du har allerede en Admeb-Admin til at administrere det. Der skal oprettes en bruger til ham på Webebserveren. Denne bruger bør have lov til at gøre to ting, som en normal bruger ikke kan:

  • Start / genstart Apache Service, hvis den stopper.
  • Rediger konfigurationsfilen til Apache.

du har som standard to brugerindstillinger:

  1. Root-bruger, som har alle tilladelser på systemet, herunder Apache.,
  2. en normal bruger, som som standard ikke vil være i stand til at starte en tjeneste eller redigere nogen konfigurationsfiler på systemet.

Dette er, når en sudoers fil vil komme handy til dig. I Sudoers vi kan præcist angive :

  • Web-Admin-brugeren kan kun starte Apache Service &
  • Han kan kun redigere Apache Config fil.

afspilning med Sudoers-filen

nok teori, vi begynder at gøre de rigtige ting nu. Jeg vil forklare hvert afsnit i Sudoers-filen med nogle eksempler., Som standard en Sudoers ligner dette —

Image-2. Uredigeret Sudoers Fil. Operativsystem: Kali Linu.2019.4

primært kan vi se fem sektioner i filen — de første tre sektioner i filen er relateret til ALIAS for vært, bruger og Cmnd., Vi vil tale om ALIAS senere, først lad os tale om det centrale afsnit :

#Bruger Privilegium Specifikation

root ALL = (ALL:ALLE) ALLE

Bemærk: ‘#’ angiver en kommentar i filen, OS vil ignorere denne linje, mens du udfører.,

Syntaks : Bruger <plads> OnHost = (Runas-Bruger:Gruppe) <plads> Kommandoer

Eksempel: root ALL = (ALL:ALLE) ALLE

Læs det som Brugeren Root kan du Køre en Kommando, som Enhver anden Bruger fra en Gruppe på en Vært.

The den første ALL bruges til at definere værter. Vi kan definere værtsnavn / Ip-adresse i stedet for alle. Alle betyder enhver vært.

Second anden alle : Tredje alle er Bruger:gruppe., I stedet for alt kan vi definere bruger eller bruger med gruppen som bruger:gruppe. Alle: alle betyder alle brugere og alle grupper.

Last sidste alle er kommandoen. I stedet for alt kan vi definere en kommando eller et sæt kommandoer. Alle betyder alle kommandoer.

for at sige det meget enkelt er det”hvem hvor = (as_whhom) hvad”.

Bemærk: de fleste mennesker forstår værter som eksterne værter. Det er den lokale værtsnavn / IP-adresse., VÆRTER felt vil være sjældent bruges, hvis du ønsker at vide mere om VÆRTER i Sudoers henvises → https://www.sudo.ws/man/1.7.10/sudoers.man.html

Dybest set, at vi kan tillade en bruger at gøre noget i kun to måder —

  1. Direkte give ham tilladelse til at udføre den kommando ved at ændre tilladelse af filen.
  2. Tillad ham at udføre kommandoen som en anden bruger, der allerede har tilladelse til at udføre denne kommando.

i Sudoers-filen implementerer vi sidstnævnte.,

Vi vil bruge et andet eksempel klart at forstå de områder i syntaksen:

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

Læs dette som Bruger “sysadmin” kan du Køre kommandoen “/usr/bin/cat /etc/shadow” som ROOT brugeren på alle VÆRTER.

Her i ovenstående eksempel i kommandosektionen — jeg har tilføjet noget mere end en kommando, dette er for at vise fleksibiliteten i Sudoers-filen. Delen “/ usr/bin / cat” er en binær eksekverbar eller kommando, der bruges til at se indholdet af en fil., Delen ” / etc / Shado. “er en fortrolig fil, der gemmer adgangskoder, så det betyder, at brugeren” sysadmin “kun kan køre” /usr/bin/cat “on” /etc/Shado. ” – filen, hvis denne bruger forsøger at se indholdet af en anden fil, som han ikke har nogen læsetilladelser på, vil han ikke kunne.,

Syntaks Sudo-kommandoen: sudo <kommandoen>

Eksempel: sudo cat /etc/shadow

Nu, hvis brugeren “sysadmin” bruger sudo, før nogen kommando, OS vil først bede ham de Brugere, Password, kontrollerer adgangskode, og derefter går til Sudoers og tjekker, om han har lov til at udstede denne kommando som enhver anden bruger. Hvis han er tilladt-succes, ellers vil det rapportere tilbage en af disse to ting —

User brugeren er ikke i Sudoers fil. Denne hændelse vil blive rapporteret.,

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 må bruger weebadmin kun køre “cat/etc / Shado.”. Men han forsøgte at køre ‘ cat ‘kommando på” / etc / gshado.”, som ikke er tilladt.

da vi har fået nok greb om felterne i syntaksen af Sudoers fil, lad os komme videre og forstå andre sektioner i filen. Alle de andre sektioner vil afhænge af kernesektionen, som vi allerede har diskuteret.,

Det næste afsnit er GRUPPEN Afsnit, som er

#Tillad medlemmer af gruppen sudo for at udføre enhver kommando

%sudo ALL = (ALL:ALLE) ALLE

Percentil symbol ‘%’ er, der anvendes til at repræsentere en gruppe i Sudoers. Alle felterne og deres funktionaliteter i dette afsnit er nøjagtigt de samme som beskrevet i det foregående afsnit — brugerafsnittet. Vi kan tildele de samme Sudo — privilegier til en gruppe i stedet for en bruger ved at specificere gruppenavnet – %<gruppenavn>., Så alle medlemmer i gruppen vil arve de samme privilegier givet til gruppen.

som standard findes der en SUDO-gruppe defineret i Sudoers-filen. Vi kan se, at disse tilladelser er nøjagtigt de samme som root-brugere tilladelser i filen. Så hvis en bruger er medlem af denne SUDO-gruppe, kan han udføre alle de kommandoer, som en ROOT-bruger kan udføre.

lad os definere en brugerdefineret gruppe og forstå syntaksen tydeligere. Lad os tage det samme gamle Systemadministratoreksempel for at gøre det. Antag Nej. af medarbejderne er mere nu, så systemadministratorerne er 3 nu., Hver af disse har brug for de samme nøjagtige tilladelser, som vi havde givet til den første systemadministrator. En ting, vi kan gøre for at opnå dette, er at have tre poster for alle de tre systemadministratorer i Sudoers-filen. Hvis vi går med denne tilgang, fornærmer vi funktionerne i en Sudoers-fil.

den bedste ting at gøre er at gruppere alle de tre systemadministratorer i en gruppe, der hedder ‘SystemAdminGroup’., Vi vil definere nødvendige tilladelser på denne gruppe med —

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

Nu er alle de tre administratorer kan udføre den Privilegerede Kommando. Vi gjorde dette på onen gang ved hjælp af Gruppedefinitionen.

Sudoers fil er i stand til at gøre hele denne proces mere effektiv ved hjælp af forskellige funktionaliteter. De første tre sektioner-aliaser bruges til at opnå dette., Som ordet allerede antyder, bruger vi et ALIAS til noget, som vi kan bruge i hele filen, det er ligesom en GLOBAL variabel i et Script. Hvordan gør dette det hele mere effektivt? Vi kan definere sæt kommandoer, værter og brugere på en linje, Vi tildeler denne linje til et ALIASNAVN, dette alias vil blive brugt når og hvor det er nødvendigt uden at definere alle kommandoer/værter/brugere igen.

Jeg vil gerne inkludere endnu et ALIAS, som ikke er angivet i Sudoers-filen som standard, som er “Run_as ALIAS”., Nu har vi fire ALIASSER —

  1. Bruger ALIAS som User_Alias
  2. Kør-Som ALIAS som Runas_Alias
  3. Host ALIAS som Host_Alias
  4. Kommandoen ALIAS som Cmnd_Alias

Bemærk : Alias navn skal være defineret i store bogstaver, og kan indeholde tal, alfabet og underscore (_). Alias navn skal starte med alfabetet.,3e”>ALIAS Navn> = <brugernavn><brugernavn> <brugernavn>…

Eksempel: User_Alias SYSTEMADMINISTRATORER = john,tim,tom

Brug: SYSTEMADMINISTRATORER ALL = (root) /usr/bin/cat /etc/shadow

Hvis jeg vil have nogle sæt sudo tilladelser, der er defineret for brugerne — john, tim og tom, jeg behøver ikke at definere det tre gange, i stedet for jeg kan definere et Alias og bruge dette Alias Navn, mens uddelegere sudo adgang 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., Bliv ikke forvirret her, bare husk master mantra — hvem hvor = (as_whhom) hvad. Vi bruger et alias her for at inkludere Nej. af brugere i feltet” as_whhom”.

Billede-6. Runas Alias i Sudoers fil. Operativsystem: Kali Linu.2019.,4

Host ALIAS Syntaks —

Brug: systemadmin HOSTS = (root): /usr/bin/cat /etc/shadow

Hvis jeg har brug for at definere et sæt af hostnavne, ip-adresser eller ip-adresseområde, som en bruger har tilladelse til at udstede den Privilegerede/Sudo kommandoer, jeg kan opnå dette ved hjælp af Host Alias. Igen hører denne del til feltet “hvor” i Master-sætningen.

Billede-7. Vært Alias i Sudoers fil., Operativsystem: Kali Linu.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 del tilhører feltet “hvad” i Master-sætningen.

Billede-8. Cmnd Alias i Sudoers fil. Operativsystem: Kali Linux 2019.4

NOPASSWD Mode:

Dette er en mere speciel funktion i Sudoers, der vil tillade en Bruger i Sudoers til at udføre en privilegeret kommando, uden at indtaste kodeordet., Dette er meget nyttigt, når du kører automatiserede scripts i systemet som en normal bruger, scriptet kan have til at udføre en privilegeret kommando. Men vi ved allerede, hvad der sker, hvis en bruger bruger SUDO, han bliver nødt til at indtaste sin adgangskode!

Husk, at selvom det er et script eller en proces, skal det køre som bruger, det kan ikke køre alene.

alle automatiserede scripts er ikke intelligente nok til at indtaste adgangskode, når du bliver bedt om det. Men det er muligt at indtaste adgangskode automatisk. Lad os for tiden ikke tænke på intelligente scripts., Så for at konkludere, kan en privilegeret kommando bruges af en bruger uden at indtaste adgangskoden.eksempel på et script, der har brug for NOPASS .d: Supervisor i Linu..Vi vil diskutere om vejleder i en anden artikel.

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

Parameter Udstødelse i ALIASER

Vi kan også tilføje parametre, som bør udelukkes i ALIASER. For eksempel:

User_Alias EXCEPT_ROOT = ALLE !,root

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

Denne User_Alias kan bruges til at sørge for, at BRUGEREN kan udføre den angivne kommando som “alle brugere end ROOT”.

denne form for udelukkelse kan gøres i alle aliaser, ikke kun User_Alias. I ethvert ALIAS forbliver udelukkelsessynta.den samme.

håndtering af Sudoers-fil med omhu

nu skal du have forstået, hvad en Sudoers-fil kan gøre, og hvor vigtigt det er at håndtere filen med omhu. Linu.implementerer allerede en mekanisme til at sikre, at Sudoers-filen håndteres korrekt.,

det anbefales altid ikke at redigere /etc/sudoers fil direkte. Der er et værktøj kaldet “visudo”. Dette bruges til sikkert at foretage ændringer i en sudoers-fil. Når du redigerer sudoers-filen ved hjælp af visudo, har visudo en indbygget funktionalitet til at kontrollere syntaksen, før du gemmer filen. Denne funktionalitet af visudo vil forhindre i at forårsage utilsigtet skade på filen og systemet.

konklusion:

Sudoers-fil spiller altid en vigtig rolle i Brugerstyringsstyring., Selvom der er mange måder at styre og kontrollere, hvad en bruger kan og ikke kan gøre på systemet, vil Sudoers-metoden altid være effektiv og robust nok til at styre og kontrollere ethvert Nej. af brugere. En anden metode, der ligner denne, som er værd at nævne, er SUID og SGID. Vi vil tale om SUID og SGID i en anden artikel.