den omfattende vejledning til Master Sudoers fil.
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.,
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:
- Root-bruger, som har alle tilladelser på systemet, herunder Apache.,
- 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 —
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 —
- Direkte give ham tilladelse til at udføre den kommando ved at ændre tilladelse af filen.
- 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
→Sorry, user <username> is not allowed to execute <command> as <User> on <hostname>
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 —
- Bruger ALIAS som User_Alias
- Kør-Som ALIAS som Runas_Alias
- Host ALIAS som Host_Alias
- 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.,
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”.
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.