Felhasználók és csoportok kezelése, fájlengedélyek és attribútumok, valamint sudo hozzáférés engedélyezése a fiókokban – 8. rész
Tavaly augusztusban a Linux Foundation elindította az LFCS minősítést (Linux Foundation Certified Sysadmin), egy vadonatúj programot, amelynek célja, hogy az egyének bárhol és bárhol vizsgát tegyenek. szerezzen tanúsítványt a Linux rendszerek alapszintű és középszintű működési támogatásáról, amely magában foglalja a futó rendszerek és szolgáltatások támogatását, valamint az általános felügyeletet és elemzést, valamint az intelligens döntéshozatalt, hogy el tudja dönteni, mikor szükséges a problémákat a magasabb szintű támogatási csoportokhoz továbbítani.
Kérjük, tekintse meg gyorsan a következő videót, amely bemutatja a Linux Foundation Certification Program bevezetését.
Ez a cikk egy 10 oktatóanyagból álló sorozat 8. része, ebben a szakaszban bemutatjuk, hogyan kezelheti a felhasználók és csoportok engedélyeit Linux rendszerben, amelyek szükségesek az LFCS minősítési vizsgához.
Mivel a Linux egy többfelhasználós operációs rendszer (amennyiben lehetővé teszi, hogy a különböző számítógépeken vagy terminálokon több felhasználó hozzáférjen egyetlen rendszerhez), tudnia kell, hogyan kell hatékonyan kezelni a felhasználót: hogyan kell hozzáadni, szerkeszteni, felfüggeszteni vagy törölni. felhasználói fiókokat, valamint megadja nekik a hozzárendelt feladataik elvégzéséhez szükséges engedélyeket.
Felhasználói fiókok hozzáadása
Új felhasználói fiók hozzáadásához a következő két parancs valamelyikét futtathatja root felhasználóként.
adduser [new_account]
useradd [new_account]
Amikor új felhasználói fiókot adunk a rendszerhez, a következő műveletek kerülnek végrehajtásra.
1. Létrejön a saját saját könyvtára (alapértelmezés szerint /home/felhasználónév).
2. A következő rejtett fájlokat a rendszer a felhasználó kezdőkönyvtárába másolja, és környezeti változókat biztosít a felhasználói munkamenetéhez.
.bash_logout
.bash_profile
.bashrc
3. A /var/spool/mail/felhasználónév címen egy levélsor jön létre a felhasználó számára.
4. Létrejön egy csoport, amely ugyanazt a nevet kapja, mint az új felhasználói fiók.
Az /etc/passwd értelmezése
A teljes fiókinformációt az /etc/passwd fájl tárolja. Ez a fájl rendszerfelhasználói fiókonként rekordot tartalmaz, és a következő formátumú (a mezőket kettőspont választja el).
[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
- A [felhasználónév] és [Megjegyzés] mező magától értetődő.
- Az x a második mezőben azt jelzi, hogy a fiókot árnyékolt jelszó védi (az /etc/shadow mappában), amely a [felhasználónév] néven történő bejelentkezéshez szükséges .
- A [UID] és [GID] mezők egész számok, amelyek a felhasználói azonosítót és az elsődleges csoportazonosítót képviselik, amelyekhez a [felhasználónév] tartozik. .
- A [Home könyvtár] jelzi a [felhasználónév] kezdőkönyvtárának abszolút elérési útját, és
- Az [Alapértelmezett shell] az a shell, amely elérhetővé válik a felhasználó számára, amikor bejelentkezik a rendszerbe.
Az /etc/group megértése
A csoportinformációkat az /etc/group fájl tárolja. Minden rekord a következő formátummal rendelkezik.
[Group name]:[Group password]:[GID]:[Group members]
- A [Csoport neve] a csoport neve.
- Egy x a [Csoportjelszó] mezőben azt jelzi, hogy a csoportjelszavak nincsenek használatban.
- [GID]: ugyanaz, mint az /etc/passwd fájlban.
- [Csoport tagjai]: a [Csoport neve] tagjainak vesszővel tagolt listája.
Fiók hozzáadása után a következő információkat szerkesztheti (hogy néhány mezőt említsünk) a usermod paranccsal, amelynek usermod alapvető szintaxisa a következő.
usermod [options] [username]
Számla lejárati dátumának beállítása
Használja a –expiredate jelzőt, majd egy dátumot ÉÉÉÉ-HH-NN formátumban.
usermod --expiredate 2014-10-30 tecmint
A felhasználó hozzáadása a kiegészítő csoportokhoz
Használja a kombinált -aG vagy –append –groups opciókat, amelyeket a csoportok vesszővel elválasztott listája követ.
usermod --append --groups root,users tecmint
A felhasználó kezdőkönyvtárának alapértelmezett helyének módosítása
Használja a -d vagy a –home opciót, majd írja be az új kezdőkönyvtár abszolút elérési útját.
usermod --home /tmp tecmint
A felhasználó által alapértelmezés szerint használt shell megváltoztatása
Használja a –shell parancsot, majd írja be az új shell elérési útját.
usermod --shell /bin/sh tecmint
A csoportok megjelenítése, amelyeknek a felhasználó tagja
groups tecmint
id tecmint
Most hajtsuk végre az összes fenti parancsot egy lépésben.
usermod --expiredate 2014-10-30 --append --groups root,users --home /tmp --shell /bin/sh tecmint
A fenti példában a tecmint felhasználói fiók lejárati dátumát 2014. október 30-ra állítjuk be. A fiókot a gyökér és felhasználói csoporthoz is hozzáadjuk. Végül az sh
-t állítjuk be alapértelmezett shellként, és módosítjuk a kezdőkönyvtár helyét a /tmp értékre:
Olvassa el még:
- 15 useradd parancspélda Linuxban
- 15 usermod parancspélda Linuxban
Meglévő fiókok esetén a következőket is megtehetjük.
Fiók letiltása jelszó zárolásával
A felhasználó jelszavának zárolásához használja a -L (nagy L betű) vagy a –lock opciót.
usermod --lock tecmint
Felhasználói jelszó feloldása
A korábban letiltott felhasználó jelszavának feloldásához használja a –u vagy a –unlock opciót.
usermod --unlock tecmint
Új csoport létrehozása olyan fájlok olvasási és írási hozzáféréséhez, amelyekhez több felhasználónak kell hozzáférnie
Futtassa a következő parancssorokat a cél eléréséhez.
groupadd common_group # Add a new group
chown :common_group common.txt # Change the group owner of common.txt to common_group
usermod -aG common_group user1 # Add user1 to common_group
usermod -aG common_group user2 # Add user2 to common_group
usermod -aG common_group user3 # Add user3 to common_group
Csoport törlése
A csoportot a következő paranccsal törölheti.
groupdel [group_name]
Ha vannak fájlok a(z) group_name tulajdonában, akkor azok nem törlődnek, de a csoport tulajdonosa a törölt csoport GID-je lesz.
Linux fájlengedélyek
Az alapvető olvasási, írási és végrehajtási engedélyeken kívül, amelyeket az Archiváló eszközök és a fájlattribútumok beállítása című részben tárgyaltunk – ennek a sorozatnak a 3. része, vannak más kevésbé használt (de nem kevésbé fontos) engedélybeállítások is, amelyeket néha „speciálisnak” neveznek. engedélyek”.
A korábban tárgyalt alapjogosultságokhoz hasonlóan ezek is egy oktális fájllal vagy egy betűvel (szimbolikus jelöléssel) vannak beállítva, amely jelzi az engedély típusát.
Felhasználói fiókok törlése
A userdel paranccsal törölheti a fiókot (a felhasználó tulajdonában lévő kezdőkönyvtárával együtt, valamint a benne lévő összes fájllal, valamint a levélsorral együtt) a userdel paranccsal és a –remove paranccsal. lehetőséget.
userdel --remove [username]
Csoportkezelés
Minden alkalommal, amikor új felhasználói fiók kerül a rendszerbe, létrejön egy azonos nevű csoport, amelynek egyetlen tagja a felhasználónév. Később további felhasználók is hozzáadhatók a csoporthoz. A csoportok egyik célja a fájlok és más rendszererőforrások egyszerű hozzáférés-vezérlésének megvalósítása az erőforrások megfelelő engedélyeinek beállításával.
Tegyük fel például, hogy a következő felhasználók vannak.
- user1 (elsődleges csoport: user1)
- user2 (elsődleges csoport: user2)
- user3 (elsődleges csoport: user3)
Mindegyiküknek olvasási és írási hozzáférésre van szüksége egy common.txt nevű fájlhoz, amely valahol a helyi rendszeren, vagy esetleg egy hálózati megosztáson található. felhasználó1 létrehozta. Kísértést érezhet valami olyasmire, mint pl.
chmod 660 common.txt
OR
chmod u=rw,g=rw,o= common.txt [notice the space between the last equal sign and the file name]
Ez azonban csak olvasási és írási hozzáférést biztosít a fájl tulajdonosának és azoknak a felhasználóknak, akik a fájl csoporttulajdonosának tagjai (felhasználó1 ebben az esetben). Ismét kísértésbe eshet, hogy a felhasználó2-t és a felhasználó3-at hozzáadja a user1 csoporthoz, de ez hozzáférést biztosít számukra a tulajdonban lévő többi fájlhoz is. felhasználó1 és felhasználó1 csoport szerint.
Itt jönnek jól a csoportok, és a következőket kell tennie egy ilyen esetben.
Setuid megértése
Amikor a setuid engedélyt alkalmazzák egy végrehajtható fájlra, a programot futtató felhasználó örökli a program tulajdonosának tényleges jogosultságait. Mivel ez a megközelítés ésszerűen biztonsági aggályokat vethet fel, a setuid engedéllyel rendelkező fájlok számát minimálisra kell csökkenteni. Valószínűleg találhat ilyen jogosultsággal rendelkező programokat, amikor a rendszerfelhasználónak hozzá kell férnie a root tulajdonában lévő fájlhoz.
Összefoglalva, nem csak arról van szó, hogy a felhasználó végrehajthatja a bináris fájlt, hanem arról is, hogy ezt a root jogosultságaival is megteheti. Például ellenőrizzük a /bin/passwd engedélyeit. Ez a bináris fájl egy fiók jelszavának megváltoztatására szolgál, és módosítja az /etc/shadow fájlt. A szuperfelhasználó megváltoztathatja bárki jelszavát, de a többi felhasználó csak a sajátját módosíthatja.
Így minden felhasználónak rendelkeznie kell engedéllyel a /bin/passwd futtatására, de fiókot csak a root adhat meg. Más felhasználók csak a megfelelő jelszavaikat módosíthatják.
A Setgid megértése
Ha a setgid bit be van állítva, a valódi felhasználó tényleges GID-je lesz a csoporttulajdonosé. Így bármely felhasználó hozzáférhet egy fájlhoz az adott fájl csoporttulajdonosának biztosított jogosultságokkal. Ezenkívül, ha a setgid bit be van állítva egy könyvtárba, az újonnan létrehozott fájlok ugyanazt a csoportot öröklik, mint a könyvtár, és az újonnan létrehozott alkönyvtárak is öröklik a szülőkönyvtár setgid bitjét. Valószínűleg ezt a megközelítést fogja használni, amikor egy bizonyos csoport tagjainak hozzáférésre van szükségük egy könyvtár összes fájljához, függetlenül a fájltulajdonos elsődleges csoportjától.
chmod g+s [filename]
A setgid oktális formátumú beállításához írja be a 2 számot az aktuális (vagy kívánt) alapvető engedélyekhez.
chmod 2755 [directory]
A SETGID beállítása egy könyvtárban
A Sticky Bit megértése
Ha a „ragadó bit” be van állítva a fájlokon, a Linux egyszerűen figyelmen kívül hagyja, míg a könyvtárak esetében megakadályozza, hogy a felhasználók töröljék vagy akár átnevezzék a benne lévő fájlokat, kivéve, ha a felhasználó birtokolja a könyvtárat, fájl, vagy root.
chmod o+t [directory]
A ragadó bit oktális formátumú beállításához írja be az 1 számot az aktuális (vagy kívánt) alapvető engedélyekhez.
chmod 1755 [directory]
A ragadós bit nélkül bárki, aki tud írni a könyvtárba, törölhet vagy átnevezhet fájlokat. Emiatt a ragadós bit általában olyan könyvtárakon található, mint a /tmp, amelyek világszerte írhatók.
Különleges Linux fájlattribútumok
Vannak más attribútumok is, amelyek további korlátozásokat tesznek lehetővé a fájlokon engedélyezett műveletekre vonatkozóan. Például megakadályozza a fájl átnevezését, áthelyezését, törlését vagy akár módosítását. A chattr paranccsal vannak beállítva, és megtekinthetők az lsattr eszközzel, az alábbiak szerint.
chattr +i file1
chattr +a file2
A két parancs végrehajtása után a file1 megváltoztathatatlan lesz (ami azt jelenti, hogy nem lehet áthelyezni, átnevezni, módosítani vagy törölni), míg a file2 csak hozzáfűzés módba lép (csak nyissa meg hozzáfűzés módban íráshoz).
A root fiók elérése és a sudo használata
Az egyik módja annak, hogy a felhasználók hozzáférjenek a root fiókhoz, a gépelés.
su
majd adja meg a root jelszavát.
Ha a hitelesítés sikeres, rootként lesz bejelentkezve az aktuális munkakönyvtárral, ugyanúgy, mint korábban. Ha inkább a root kezdőkönyvtárába szeretne kerülni, futtassa.
su -
majd adja meg a root jelszavát.
A fenti eljárás megköveteli, hogy egy normál felhasználó ismerje a root jelszavát, ami komoly biztonsági kockázatot jelent. Emiatt a rendszergazda beállíthatja a sudo parancsot, hogy egy közönséges felhasználó más felhasználóként (általában a szuperfelhasználóként) nagyon ellenőrzött és korlátozott módon hajtson végre parancsokat. Így korlátozások állíthatók be a felhasználóra úgy, hogy egy vagy több meghatározott privilegizált parancsot futtasson, másokat ne.
Olvassa el még: A su és a sudo felhasználó közötti különbség
A sudo használatával történő hitelesítéshez a felhasználó a saját jelszavát használja. A parancs beírása után a rendszer kéri a jelszavunkat (nem a szuperfelhasználóét), és ha a hitelesítés sikeres (és ha a felhasználó jogosultságot kapott a parancs futtatására), akkor a megadott parancs végrehajtásra kerül.
Ahhoz, hogy hozzáférést biztosítson a sudo-hoz, a rendszergazdának szerkesztenie kell az /etc/sudoers fájlt. Javasoljuk, hogy ezt a fájlt a visudo paranccsal szerkessze ahelyett, hogy közvetlenül egy szövegszerkesztővel nyitná meg.
visudo
Ez megnyitja az /etc/sudoers fájlt a vim használatával (a fájl szerkesztéséhez kövesse a Vim telepítése és használata szerkesztőként – sorozat 2. részében található utasításokat).
Ezek a legrelevánsabb sorok.
Defaults secure_path="/usr/sbin:/usr/bin:/sbin"
root ALL=(ALL) ALL
tecmint ALL=/bin/yum update
gacanepa ALL=NOPASSWD:/bin/updatedb
%admin ALL=(ALL) ALL
Nézzük meg őket közelebbről.
Defaults secure_path="/usr/sbin:/usr/bin:/sbin:/usr/local/bin"
Ebben a sorban adhatja meg a sudo-hoz használandó könyvtárakat, és megakadályozza a felhasználó-specifikus könyvtárak használatát, amelyek károsíthatják a rendszert.
A következő sorok az engedélyek megadására szolgálnak.
root ALL=(ALL) ALL
- Az első ALL kulcsszó azt jelzi, hogy ez a szabály minden gazdagépre vonatkozik.
- A második ALL azt jelzi, hogy az első oszlopban lévő felhasználó bármelyik felhasználó jogosultságaival futtathat parancsokat.
- A harmadik MINDEN azt jelenti, hogy bármilyen parancs futtatható.
tecmint ALL=/bin/yum update
Ha nincs megadva felhasználó a = jel után, a sudo a root felhasználót feltételezi. Ebben az esetben a tecmint felhasználó rootként tudja futtatni a yum update parancsot.
gacanepa ALL=NOPASSWD:/bin/updatedb
A NOPASSWD direktíva lehetővé teszi, hogy a gacanepa felhasználó a jelszavának megadása nélkül futtassa a /bin/updatedb fájlt.
%admin ALL=(ALL) ALL
A % jel azt jelzi, hogy ez a sor az „admin” nevű csoportra vonatkozik. A sor többi részének jelentése megegyezik a normál felhasználóéval. Ez azt jelenti, hogy az „admin ” csoport tagjai az összes parancsot bármely felhasználóként futtathatják az összes gazdagépen.
Ha látni szeretné, hogy a sudo milyen jogosultságokat biztosít Önnek, használja a „-l ” opciót a listához.
PAM (Pluggable Authentication Modules)
A Pluggable Authentication Modules (PAM) rugalmasságot kínál egy adott hitelesítési séma alkalmazásonkénti és/vagy szolgáltatásonkénti beállításához modulok segítségével. Ez az összes modern Linux disztribúción megtalálható eszköz legyőzte azt a problémát, amellyel a fejlesztők gyakran szembesültek a Linux korai napjaiban, amikor minden hitelesítést igénylő programot külön kellett lefordítani, hogy megtudják, hogyan juthatnak hozzá a szükséges információkhoz.
Például a PAM esetében nem számít, hogy a jelszava az /etc/shadow mappában vagy a hálózaton belüli külön szerveren van tárolva.
Például, ha a bejelentkező programnak hitelesítenie kell egy felhasználót, a PAM dinamikusan biztosítja a megfelelő hitelesítési séma függvényeit tartalmazó könyvtárat. Így a bejelentkezési alkalmazás (vagy bármely más, PAM-ot használó program) hitelesítési sémájának megváltoztatása egyszerű, mivel csak egy konfigurációs fájl szerkesztését jelenti (valószínűleg egy, az alkalmazásról elnevezett fájl, amely a /etc/pam.d fájlban található
, és kevésbé valószínű az /etc/pam.conf
fájlban).
Az /etc/pam.d
fájlban található fájlok jelzik, hogy mely alkalmazások használják natívan a PAM-ot. Ezenkívül meg tudjuk állapítani, hogy egy adott alkalmazás használ-e PAM-ot, ha ellenőrizzük, hogy a PAM-könyvtár (libpam) kapcsolódik-e hozzá:
ldd $(which login) | grep libpam # login uses PAM
ldd $(which top) | grep libpam # top does not use PAM
A fenti képen láthatjuk, hogy a libpam össze van kapcsolva a bejelentkező alkalmazással. Ez logikus, mivel ez az alkalmazás részt vesz a rendszer felhasználói hitelesítésében, míg a top nem.
Vizsgáljuk meg a passwd PAM konfigurációs fájlját – igen, ez a jól ismert segédprogram a felhasználói jelszavak megváltoztatására. Az /etc/pam.d/passwd címen található:
cat /etc/passwd
Az első oszlop jelzi a module-path
-hoz használandó hitelesítés típusát
(harmadik oszlop). Ha kötőjel jelenik meg a típus előtt, a PAM nem rögzíti a rendszernaplóba, ha a modul nem tölthető be, mert nem található a rendszerben.
A következő hitelesítési típusok állnak rendelkezésre:
fiók
: ez a modultípus ellenőrzi, hogy a felhasználó vagy a szolgáltatás érvényes hitelesítő adatokat adott-e meg a hitelesítéshez.auth
: ez a modultípus ellenőrzi, hogy a felhasználó az, akinek állítja magát, és megadja a szükséges jogosultságokat.jelszó
: ez a modultípus lehetővé teszi a felhasználó vagy a szolgáltatás számára, hogy frissítse jelszavát.session
: ez a modultípus jelzi, hogy mit kell tenni a hitelesítés sikeressége előtt és/vagy után.
A második oszlop (az úgynevezett control
) jelzi, hogy mi történjen, ha a hitelesítés ezzel a modullal meghiúsul:
szükséges
: ha a hitelesítés ezen a modulon keresztül meghiúsul, a teljes hitelesítés azonnal megtagadásra kerül.- A
required
hasonló a szükségeshez, bár a szolgáltatáshoz tartozó összes többi felsorolt modul meghívásra kerül a hitelesítés megtagadása előtt. elegendő
: ha a hitelesítés ezen a modulon keresztül meghiúsul, a PAM továbbra is megadja a hitelesítést, még akkor is, ha a korábbi szükségesként megjelölt művelet sikertelen volt.opcionális
: ha a hitelesítés ezen a modulon keresztül meghiúsul vagy sikeres, semmi sem történik, kivéve, ha ez az egyetlen ilyen típusú modul ehhez a szolgáltatáshoz.- Az
include
azt jelenti, hogy az adott típusú sorokat egy másik fájlból kell beolvasni. - Az
substack
hasonló az include-hoz, de a hitelesítési hibák vagy sikerek nem a teljes modulból, hanem csak az alveremből való kilépést okozzák.
A negyedik oszlop, ha létezik, a modulnak átadandó argumentumokat mutatja.
Az /etc/pam.d/passwd első három sora (fent látható), töltse be a system-auth modult, hogy ellenőrizze, hogy a felhasználó megadta-e az érvényes hitelesítő adatokat (fiók). . Ha igen, akkor a passwd (auth) használatának engedélyezésével megváltoztathatja a hitelesítési tokent (jelszót).
Például, ha hozzáfűzi
remember=2
a következő sorra
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
itt: /etc/pam.d/system-auth:
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=2
az egyes felhasználók utolsó két kivonatolt jelszava a /etc/security/opasswd mappába kerül mentésre, így azok nem használhatók fel újra:
Összegzés
A hatékony felhasználói és fájlkezelési ismeretek minden rendszergazdának nélkülözhetetlen eszközei. Ebben a cikkben az alapokat ismertetjük, és reméljük, hogy jó kiindulópontként használhatja majd a továbbépítéshez. Nyugodtan hagyja meg észrevételeit vagy kérdéseit alább, és mi gyorsan válaszolunk.