Weboldal keresés

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]
  1. A [felhasználónév] és [Megjegyzés] mező magától értetődő.
  2. 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 .
  3. 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. .
  4. A [Home könyvtár] jelzi a [felhasználónév] kezdőkönyvtárának abszolút elérési útját, és
  5. 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]
  1. A [Csoport neve] a csoport neve.
  2. Egy x a [Csoportjelszó] mezőben azt jelzi, hogy a csoportjelszavak nincsenek használatban.
  3. [GID]: ugyanaz, mint az /etc/passwd fájlban.
  4. [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:

  1. 15 useradd parancspélda Linuxban
  2. 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.

  1. user1 (elsődleges csoport: user1)
  2. user2 (elsődleges csoport: user2)
  3. 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
  1. Az első ALL kulcsszó azt jelzi, hogy ez a szabály minden gazdagépre vonatkozik.
  2. A második ALL azt jelzi, hogy az első oszlopban lévő felhasználó bármelyik felhasználó jogosultságaival futtathat parancsokat.
  3. 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:

  1. 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.
  2. 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.
  3. jelszó: ez a modultípus lehetővé teszi a felhasználó vagy a szolgáltatás számára, hogy frissítse jelszavát.
  4. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Az include azt jelenti, hogy az adott típusú sorokat egy másik fájlból kell beolvasni.
  6. 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.