az átfogó útmutató a Master Sudoers fájlhoz.

Mi a Sudoers Fájlt?
a sudoers fájl olyan, mint bármely más fájl a Linux operációs rendszeren., De létfontosságú szerepet játszik annak kezelésében, hogy egy “felhasználó” vagy “csoport felhasználói” mit tehetnek a rendszeren.
miért a sudoers név?
a sudo szó a “Super User Do”kifejezés rövidítése. Ahogy világosan sugallja — ez olyan, mint mondani a Kernel/OS ” nincs más választása, csak csináld!”. Tehát a sudo engedéllyel rendelkező felhasználókat Sudo felhasználóknak hívják. Ezeknek a sudo felhasználóknak a kezelése egy sudoers fájlnak nevezett fájlon keresztül történik. Ez a fájl az /etc könyvtárban is él, mint bármely más konfigurációs fájl.,

miért sudoers Fájl?
a Linux normál felhasználójának számos korlátozása lesz a rendszerben. Például-a felhasználó alapértelmezés szerint nem tud elindítani egy szolgáltatást, megváltoztatni egy konfigurációs fájlt vagy végrehajtani egy szkriptet a rendszeren. Biztonsági szempontból ez tökéletesnek tűnik.,
de vegyünk egy példát-Ön, mint rendszeradminisztrátor, kezelnie kell az összes felhasználót és azok vezérlőit. Van egy honlap házigazdája Apache az egyik szerverek. Már van egy Web-Admin kezelni. A felhasználót létre kell hozni neki a webszerveren. Ez a felhasználó számára lehetővé kell tenni, hogy két dolgot, amit egy normál felhasználó nem:
- Start / Restart Apache szolgáltatás esetén leáll.
- szerkessze az Apache konfigurációs fájlját.
alapértelmezés szerint két felhasználói lehetősége van:
- Root felhasználó, amely rendelkezik a rendszer összes engedélyével, beleértve az Apache-t is.,
- egy normál felhasználó, amely alapértelmezés szerint nem tudja elindítani a Szolgáltatást, vagy szerkeszteni a rendszer konfigurációs fájljait.
Ez az, amikor egy sudoers fájl hasznos lesz az Ön számára. A sudoers fájlban pontosan meghatározhatjuk:
- Web-Admin felhasználó csak az Apache szolgáltatást indíthatja el &
- csak az Apache Config fájlt szerkesztheti.
játszik a Sudoers Fájl
elég elmélet, kezdjük ezzel az igazi cucc most. Néhány példával elmagyarázom a Sudoers fájl minden szakaszát., Alapértelmezés szerint egy sudoers fájl így néz ki —

elsősorban a fájl öt szakaszát láthatjuk-a fájl első három szakasza a gazdagép, a felhasználó és a Cmnd ÁLNEVÉHEZ kapcsolódik., Az ALIASRÓL később fogunk beszélni, először beszéljünk a fő szakaszról:
#felhasználói jogosultság specifikáció
root ALL = (ALL: ALL) ALL
Megjegyzés: “# ” Megjegyzés a fájlban, az operációs rendszer figyelmen kívül hagyja ezt a sort a végrehajtás közben.,
szintaxis : User <space> OnHost = (Runas-Felhasználó:Csoport) <space> parancs
példa: root all = (all:all) all
read it as — user root bármilyen parancsot futtathat, mint bármely Felhasználó bármely csoportból bármely gazdagépen.
→ az első mindent a gazdagépek meghatározására használnak. Mi lehet meghatározni Hostname / Ip-cím helyett az összes. Minden azt jelenti, minden fogadó.
→ második minden: harmadik minden felhasználó: csoport., Ahelyett, hogy minden tudjuk meghatározni Felhasználó vagy felhasználó a csoport, mint a Felhasználó: Csoport. Minden: minden azt jelenti, minden felhasználó és minden csoport.
→ Az utolsó minden a parancs. Ehelyett megadhatunk egy parancsot vagy parancskészletet. Minden azt jelenti, minden parancs.
ahhoz, hogy nagyon egyszerű legyen, “ki hol = (as_whom) mi”.
Megjegyzés: A legtöbb ember távoli házigazdaként érti a házigazdákat. Ez a helyi HOSTNAME / IP-cím., A HOSTS mezőt ritkán használják, ha többet szeretne tudni a sudoers GAZDAGÉPEIRŐL, kérjük, olvassa el → https://www.sudo.ws/man/1.7.10/sudoers.man.html
alapvetően megengedhetjük a felhasználónak, hogy csak két módon tegyen valamit —
- közvetlenül adjon neki engedélyt a parancs végrehajtására a fájl engedélyének módosításával.
- engedje meg neki, hogy végrehajtsa a parancsot más felhasználóként, amely már rendelkezik a parancs végrehajtására vonatkozó engedéllyel.
a Sudoers fájlban az utóbbit fogjuk végrehajtani.,
egy másik példát fogunk használni, hogy világosan megértsük a szintaxis mezőit:
példa: sysadmin ALL = (root) /usr/bin/cat /etc/shadow
olvassa el ezt a “sysadmin” felhasználóként futtathatja a “/usr/bin/cat /etc/shadow” parancsot, mint ROOT felhasználó az összes gazdagépen.
itt a fenti példában, a parancs részben — valami többet adtam hozzá, mint egy parancs, ez a sudoers fájl rugalmasságának megjelenítése. A “/usr/bin/cat ” rész egy bináris futtatható fájl vagy parancs, amelyet egy fájl tartalmának megtekintésére használnak., Az ” / etc / shadow “rész egy bizalmas fájl, amely jelszavakat tárol, tehát azt jelenti, hogy a” sysadmin “felhasználó csak” /usr/bin/cat “on” /etc/shadow ” fájlt futtathat, ha ez a felhasználó megpróbálja megtekinteni bármely más fájl tartalmát, amelyen nincs olvasási engedélye, akkor nem lesz képes.,
Szintaxis a Sudo parancsot: sudo <parancs>
Például: sudo cat /etc/shadow
ha a felhasználó a “rendszergazda” használ sudo mielőtt bármilyen parancs, OPERÁCIÓS rendszer első kérdezd meg a Felhasználó Jelszavát, ellenőrzi a jelszót, aztán megy Sudoers fájlt, majd ellenőrzi, ha megengedik neki, hogy kiadja ezt a parancsot, mint bármely felhasználó. Ha megengedett-siker, különben a két dolog egyikét jelenti –
→ a felhasználó nincs a Sudoers fájlban. Az esetet jelenteni fogják.,
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>

itt a felhasználói webadmin csak”cat /etc/shadow” futtatható. De megpróbálta futtatni a ” cat “parancsot az” /etc/gshadow ” – on, ami nem megengedett.
mivel van elég fogást a mezőket a szintaxis Sudoers fájl, menjünk előre, és megérteni más szakaszok a fájlban. Az összes többi szakasz a már tárgyalt alapszakasztól függ.,
a következő szakasz a csoport szakasz, amely
# lehetővé teszi a sudo csoport tagjainak, hogy bármilyen parancsot végrehajtsanak
%sudo ALL = (ALL:ALL) ALL
Percentile symbol ‘%’ egy csoportot képvisel a Sudoers fájlban. Az ebben a szakaszban található összes mező és azok funkcionalitása pontosan megegyezik az előző részben — a felhasználó részben tárgyalt mezőkkel. Ugyanazt a Sudo jogosultságot rendelhetjük egy csoporthoz a felhasználó helyett a csoport nevének megadásával – %<csoport neve>., Tehát a csoport minden tagja ugyanazokat a kiváltságokat fogja örökölni, mint a csoport.
alapértelmezés szerint létezik egy sudo csoport, amelyet a sudoers fájl definiál. Láthatjuk, hogy ezek az engedélyek pontosan ugyanazok, mint a gyökérfelhasználók engedélyei a fájlban. Tehát ha egy felhasználó tagja ennek a SUDO csoportnak, akkor végrehajthatja az összes parancsot, amelyet a ROOT felhasználó végrehajthat.
definiáljunk egy egyéni csoportot, és értsük világosabban a szintaxist. Vegyük ugyanazt a régi Rendszeradmin példát erre. Tegyük fel, hogy nem. az alkalmazottak több most, így a rendszer adminok 3 most., Mindegyiknek ugyanolyan pontos engedélyekre van szüksége,amelyeket az első rendszeradminisztrátornak adtunk. Egy dolog, amit tehetünk, hogy elérjük ezt a három bejegyzést mind a három rendszer adminok a sudoers fájlt. Ha ezzel a megközelítéssel megyünk, megsértjük a Sudoers Fájl képességeit.
a legjobb dolog az, hogy a három Rendszeradminisztrátort csoportosítsuk egy “SystemAdminGroup” nevű csoportba., Meg fogjuk határozni a szükséges engedélyeket ebben a csoportban —
%SystemAdminGroup ALL = (root) /usr/bin/cat /etc/shadow
most mind a három rendszergazda végrehajthatja a kiváltságos parancsot. Mi ezt egy menetben a csoport meghatározása.
sudoers fájl képes arra, hogy ez az egész folyamat hatékonyabb segítségével különböző funkciókat. Ennek eléréséhez az első három szakasz-álneveket használják., Ahogy a szó már sugallja, álnevet használunk valamire, amelyet az egész fájlban használhatunk, olyan, mint egy szkript globális változója. Hogyan teszi ez az egészet hatékonyabbá? Határozhatunk meg, állítsa be a parancsokat, a házigazdák pedig a felhasználók egy sorban, mi adhatja ez a vonal, hogy egy ALIAS nevet, ez az álnév lesz használható bárhol, bármikor szükség nélkül meghatározása a parancsok/hosts/users újra.
Szeretnék még egy álnevet felvenni, amely alapértelmezés szerint nem szerepel a Sudoers fájlban, amely “Run_as ALIAS”., Most már négy ÁLNEVÜNK van —
- User_alias
- Run-as ALIAS as Runas_Alias
- Host ALIAS as Host_Alias
- Command ALIAS as Cmnd_Alias
Megjegyzés : Az Alias nevét nagybetűkkel kell definiálni, és tartalmazhat számot, ábécétet és betűket.aláhúzás (_). Alias név kell kezdeni ábécé.,3e”>
ALIAS Név> = <username>,<username>, <username>…
Példa: User_Alias SYSADMINS = john,tim,tom
Használat: SYSADMINS MINDEN = (root) a /usr/bin/cat /etc/shadow
Ha azt akarom, hogy egy sor sudo engedélyek meghatározott, a felhasználók számára — john, tim tom, nem kell meghatározni, háromszor, hanem azt is meghatározza, Álnév használatát, Alias Név, amíg kiosztottam a sudo azokhoz való hozzáférést.,

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., Ne zavarodj itt, csak emlékezz a mester mantrára-ki hol = (as_whom) mit. Itt egy álnevet használunk, hogy ne legyen. a felhasználók “as_whom” mezőben.

Host ALIAS Syntax —
használat: systemadmin HOSTS = (root) /usr/bin/cat /etc/shadow
Ha meg kell határoznom a hostnames, ip-címek vagy ip-címtartományt, amelyen a felhasználó kiadhatja a kiváltságos/Sudo parancsokat, ezt a Host Alias használatával tudom elérni. Ez a rész ismét a” hol ” mezőhöz tartozik a Mestermondatban.

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., Ez a rész a” mi ” mezőhöz tartozik a Mestermondatban.

NOPASSWD mód:
ez még egy speciális funkció a Sudoers-ben, amely lehetővé teszi a sudoers fájlban lévő felhasználó számára, hogy kiváltságos parancsot hajtson végre a jelszó megadása nélkül., Ez nagyon hasznos, ha normál felhasználóként automatizált szkripteket futtat a rendszerben, előfordulhat, hogy a szkriptnek kiváltságos parancsot kell végrehajtania. De már tudjuk, mi történik, ha bármely felhasználó SUDO-t használ, meg kell adnia a jelszavát!
ne feledje, hogy még akkor is, ha szkript vagy folyamat, felhasználóként kell futnia, önmagában nem futhat.
az összes automatizált szkript nem elég intelligens ahhoz, hogy jelszót adjon meg, amikor a rendszer kéri. De lehetséges a jelszó automatikus megadása. Egyelőre ne gondoljunk az intelligens szkriptekre., Tehát összefoglalva, a felhasználó kiváltságos parancsot használhat a jelszó megadása nélkül.
példa egy script igénylő Nopasswd: Supervisor Linux.A felügyelőről egy másik cikkben fogunk beszélni.
szintaxis : sysadmin ALL = (root) nopasswd:/usr/sbin/apache2
paraméter kizárás ÁLNEVEKBEN
olyan paramétereket is hozzáadhatunk, amelyeket ki kell zárni az ÁLNEVEKBEN. Például —
USER_ALIAS EXCEPT_ROOT = ALL,!,root
sysadmin ALL = (EXCEPT_ROOT)/usr/sbin/apache2
Ez User_Alias lehet használni, hogy megbizonyosodjon arról, hogy a felhasználó tudja végrehajtani a megadott parancsot, mint “minden felhasználó, kivéve ROOT”.
Ez a fajta kizárás lehet tenni az összes álnevek, nem csak User_Alias. Bármely ÁLNÉVBEN a kizárási szintaxis ugyanaz marad.
sudoers fájl kezelése gondossággal
mostanra már meg kellett értened, hogy mit tehet egy sudoers fájl, és mennyire fontos a fájl gondos kezelése. A Linux már végrehajtja a mechanizmust annak biztosítására, hogy a Sudoers fájlt megfelelően kezelje.,
mindig ajánlott, hogy ne szerkessze közvetlenül az /etc/sudoers fájlt. Van egy eszköz, amit “visudo” – nak hívnak. Ezzel biztonságosan módosíthatja a sudoers fájlt. Amikor a visudo segítségével szerkeszti a sudoers fájlt, a visudo beépített funkcióval rendelkezik, hogy ellenőrizze a szintaxist a fájl mentése előtt, ha hibát követ el, akkor azonnal megmutatja a sort, ahol a szintaxis nem megfelelő. A visudo ezen funkciója megakadályozza a fájl és a rendszer véletlen károsodását.
következtetés:
a sudoers fájl mindig fontos szerepet játszik a felhasználói Vezérlőkezelésben., Bár számos módja van annak, hogy kezelni és irányítani, amit a felhasználó tud és nem tud a rendszer, Sudoers módszer mindig hatékony és robusztus ahhoz, hogy kezelni és irányítani semmilyen nem. a felhasználók. Egy másik hasonló módszer, amelyet érdemes megemlíteni, a SUID és az SGID. Egy másik cikkben SUIDRÓL és SGID-ről fogunk beszélni.