107.1 Lecke 2
Tanúsítvány: |
LPIC-1 |
---|---|
Verzió: |
5.0 |
Témakör: |
107 Adminisztrációs feladatok |
Fejezet: |
107.1 Felhasználói- és csoport-fiókok, valamint a kapcsolódó rendszerfájlok kezelése |
Lecke: |
2/2 |
Bevezetés
Az előző leckében tárgyalt parancssori eszközök és az egyes disztribúciók által biztosított grafikus alkalmazások, amelyek ugyanazokat a feladatokat végzik el, frissítik a felhasználókra és csoportokra vonatkozó információkat tároló fájlokat.
Ezek a fájlok az /etc/
mappában találhatók és az alábbiak:
/etc/passwd
-
A fájl hét, kettősponttal elválasztott mezőből áll, amelyek a felhasználók alapvető adatait tartalmazzák.
/etc/group
-
Négy, kettőspontokkal elválasztott mezőből álló fájl, amely a csoportok alapvető adatait tartalmazza.
/etc/shadow
-
Kilenc, kettőspontokkal elválasztott mezőből álló fájl, amely titkosított felhasználói jelszavakat tartalmaz.
/etc/gshadow
-
Négy, kettőspontokkal elválasztott mezőből álló fájl, amely titkosított csoportjelszavakat tartalmaz.
Bár ez a négy fájl egyszerű szöveg, nem szabad közvetlenül szerkeszteni őket, hanem csak a használt disztribúció által biztosított eszközökkel.
/etc/passwd
Ez egy világosan olvasható fájl, amely a felhasználók listáját tartalmazza, minden egyes felhasználót külön sorban. Minden sor hét, kettősponttal elválasztott mezőből áll:
- Username
-
A név, amivel a felhasználó belép a rendszerbe.
- Password
-
A titkosított jelszó (vagy egy
x
, ha shadow jelszavak vannak használatban). - User ID (UID)
-
A rendszerben a felhasználóhoz tartozó ID.
- Group ID (GID)
-
A felhasználó elsődleges csoportjának száma a rendszerben.
- GECOS
-
Egy opcionális megjegyzés mező, amely a felhasználóval kapcsolatos további információk (például a teljes név) hozzáadására szolgál. A mező több, vesszővel elválasztott bejegyzést is tartalmazhat.
- Home Directory
-
A felhasználó home mappájának abszolút elérési útja.
- Shell
-
Annak a programnak az abszolút elérési útja, amely automatikusan elindul, amikor a felhasználó bejelentkezik a rendszerbe (általában egy interaktív shell, például
/bin/bash
).
/etc/group
Ez egy világosan olvasható fájl, amely a csoportok listáját tartalmazza, mindegyiket külön sorban. Minden sor négy, kettősponttal elválasztott mezőből áll:
- Group Name
-
A csoport neve.
- Group Password
-
A csoport jelszava titkosítva (vagy egy
x
, ha shadow jelszavak vannak használatban). - Group ID (GID)
-
A rendszerben a csoporthoz tartozó ID.
- Member List
-
A csoporthoz tartozó felhasználók vesszővel elválasztott listája, kivéve azoké, akik számára ez az elsődleges csoport.
/etc/shadow
Ez egy csak a root és a root jogosultsággal rendelkező felhasználók által olvasható fájl, amely titkosított felhasználói jelszavakat tartalmaz, mindegyik külön sorban. Minden sor kilenc, kettősponttal elválasztott mezőből áll:
- Username
-
A felhasználó rendszerbe való bejelentkezésekor használt név.
- Encrypted Password
-
A felhasználó jelszava titkosítva (ha az érték elején van egy
!
, a fiók zárolva van). - Date of Last Password Change
-
A legutóbbi jelszóváltoztatás dátuma, az 1970.01.01. óta eltelt napok számaként (a 0 érték azt jelenti, hogy a felhasználónak a következő bejelentkezéskor meg kell változtatnia a jelszót).
- Minimum Password Age
-
A jelszóváltoztatás után legalább ennyi napnak kell eltelnie, amíg a felhasználó újra megváltoztathatja a jelszavát.
- Maximum Password Age
-
A jelszóváltoztatásig hátralévő napok maximális száma.
- Password Warning Period
-
A jelszó lejárta előtti napok száma, ameddig a felhasználó figyelmeztetést kap a jelszó megváltoztatására.
- Password Inactivity Period
-
A jelszó lejártát követő napok száma, amely alatt a felhasználónak frissítenie kell a jelszót. Ezen időszak letelte után, ha a felhasználó nem változtatja meg a jelszavát, a fiók letiltásra kerül.
- Account Expiration Date
-
Az 1970. 01. 01. óta eltelt napok számában kifejezett dátum, amikor a felhasználói fiók letiltásra kerül (az üres mező azt jelenti, hogy a felhasználói fiók soha nem jár le).
- A reserved field
-
Egy jövőbeni használatra fenntartott mező.
/etc/gshadow
Ez egy csak a root és a root jogosultsággal rendelkező felhasználók által olvasható fájl, amely titkosított csoportjelszavakat tartalmaz, mindegyik külön sorban. Minden sor négy, kettősponttal elválasztott mezőből áll:
- Group Name
-
A csoport neve.
- Encrypted Password
-
A csoport titkosított jelszava (ezt akkor használjuk, ha egy olyan felhasználó, aki nem tagja a csoportnak, a
newgrp
paranccsal szeretne csatlakozni a csoporthoz — ha a jelszó!
-vel kezdődik, senki sem léphet be a csoportba anewgrp
paranccsal). - Group Administrators
-
A csoport rendszergazdáinak vesszővel elválasztott listája (ők módosíthatják a csoport jelszavát, és a
gpasswd
paranccsal hozzáadhatnak vagy eltávolíthatnak csoporttagokat). - Group Members
-
A csoport tagjainak vesszővel elválasztott listája.
A jelszó- és csoportadatbázisok szűrése
Nagyon gyakran szükség lehet az e négy fájlban tárolt, felhasználókra és csoportokra vonatkozó információk áttekintésére és bizonyos rekordok keresésére. Ehhez a feladathoz használhatjuk a grep
parancsot, vagy alternatívaként a cat
és a grep
parancsok összekapcsolását.
# grep emma /etc/passwd emma:x:1020:1020:User Emma:/home/emma:/bin/bash # cat /etc/group | grep db-admin db-admin:x:1050:grace,frank
Az adatbázisok elérésének másik módja a getent
parancs használata. Ez a parancs általában a Name Service Switch (NSS) könyvtárak által támogatott adatbázisok bejegyzéseit jeleníti meg és az adatbázis nevét és egy keresőkulcsot igényel. Ha nincs kulcs-argumentum megadva, akkor a megadott adatbázis összes bejegyzése megjelenik (kivéve, ha az adatbázis nem támogatja a felsorolást). Ellenkező esetben, ha egy vagy több kulcsargumentumot adunk meg, az adatbázis szűrése ennek megfelelően történik.
# getent passwd emma emma:x:1020:1020:User Emma:/home/emma:/bin/bash # getent group db-admin db-admin:x:1050:grace,frank
A getent
parancs nem igényel root jogosultságot; csak arra van szükség, hogy képesek legyünk olvasni az adatbázist, amelyből a rekordokat le akarjuk kérni.
Note
|
Ne feledjük, hogy a |
Gyakorló feladatok
-
Nézzük meg az alábbi kimenetet és válaszoljuk meg az alábbi kérdéseket:
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
Mi a felhasználói azonosítója (UID) és a csoportazonosítója (GID) a
root
éscatherine
felhasználóknak? -
Mi a neve a
kevin
elsődleges csoportjának? Vannak más tagok is ebben a csoportban? -
Melyik shell van beállítva a
mail
-nek? Ez mit jelent? -
Kik az
app-developer
csoport tagjai? A tagok közül kik a csoport adminisztrátorai és kik az egyszerű tagok? -
Mennyi a minimális jelszó élettartama a
catherine
felhasználónak? És mennyi a maximális jelszó élettartama? -
Mennyi a jelszó inaktivitási ideje a
kevin
felhasználó esetén?
-
-
A konvenció szerint mely azonosítókat rendeljük a rendszerfiókokhoz és melyeket az egyszerű felhasználókhoz?
-
Hogyan lehet megtudni, hogy egy felhasználói fiók, amely korábban hozzáférhetett a rendszerhez, most zárolt-e? Tegyük fel, hogy a rendszer shadow jelszavakat használ.
Gondolkodtató feladatok
-
Hozzunk létre egy
christian
nevű felhasználói fiókot auseradd -m
paranccsal, és határozzuk meg a felhasználói azonosítóját (UID), a csoport azonosítóját (GID) és a shell-t! -
Határozzuk meg
christian
elsődleges csoportjának nevét! Mire következtethetünk? -
A
getent
parancs segítségével nézzük meg achristian
felhasználói fiók jelszavának öregedési információit! -
Adjuk hozzá az
editor
csoportot achristian
fiók másodlagos csoportjaihoz. Tegyük fel, hogy ez a csoport már tartalmazza azemma
,dave
ésfrank
fiókokat rendes tagként. Hogyan tudjuk ellenőrizni, hogy nincsenek adminisztrátorok ebben a csoportban? -
Futtassuk le az
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
parancsot és írjuk le a kimenetet, amelyet a jogosultságok tekintetében ad ki! Melyik négy fájl van biztonsági okokból árnyékolva? Tegyük fel, hogy a rendszer shadow jelszavakat használ!
Összefoglalás
Ebben a leckében megtanultuk:
-
A felhasználókra és csoportokra vonatkozó információkat tároló fájlok helye.
-
Jelszó- és csoportadatbázisokban tárolt felhasználói és csoportinformációk kezelése.
-
Információk kinyerése jelszó- és csoportadatbázisokból.
A leckében használt fájlok és parancsok:
/etc/passwd
-
A felhasználókra vonatkozó alapvető információkat tartalmazó fájl.
/etc/group
-
A csoportokra vonatkozó alapvető információkat tartalmazó fájl.
/etc/shadow
-
A titkosított felhasználói jelszavakat tartalmazó fájl.
/etc/gshadow
-
A titkosított csoportjelszavakat tartalmazó fájl.
getent
-
A jelszó- és csoportadatbázisok szűrése.
Válaszok a gyakorló feladatokra
-
Nézzük meg az alábbi kimenetet és válaszoljuk meg az alábbi kérdéseket:
# cat /etc/passwd | grep '\(root\|mail\|catherine\|kevin\)' root:x:0:0:root:/root:/bin/bash mail:x:8:8:mail:/var/spool/mail:/sbin/nologin catherine:x:1030:1025:User Chaterine:/home/catherine:/bin/bash kevin:x:1040:1015:User Kevin:/home/kevin:/bin/bash # cat /etc/group | grep '\(root\|mail\|db-admin\|app-developer\)' root:x:0: mail:x:8: db-admin:x:1015:emma,grace app-developer:x:1016:catherine,dave,christian # cat /etc/shadow | grep '\(root\|mail\|catherine\|kevin\)' root:$6$1u36Ipok$ljt8ooPMLewAhkQPf.lYgGopAB.jClTO6ljsdczxvkLPkpi/amgp.zyfAN680zrLLp2avvpdKA0llpssdfcPppOp:18015:0:99999:7::: mail:*:18015:0:99999:7::: catherine:$6$ABCD25jlld14hpPthEFGnnssEWw1234yioMpliABCdef1f3478kAfhhAfgbAMjY1/BAeeAsl/FeEdddKd12345g6kPACcik:18015:20:90:5::: kevin:$6$DEFGabc123WrLp223fsvp0ddx3dbA7pPPc4LMaa123u6Lp02Lpvm123456pyphhh5ps012vbArL245.PR1345kkA3Gas12P:18015:0:60:7:2:: # cat /etc/gshadow | grep '\(root\|mail\|db-admin\|app-developer\)' root:*:: mail:*:: db-admin:!:emma:emma,grace app-developer:!::catherine,dave,christian
-
Mi a felhasználói azonosítója (UID) és a csoportazonosítója (GID) a
root
éscatherine
felhasználóknak?A
root
UID-ja és GID-je 0 és 0, mígcatherine
UID-ja és GID-je 1030 és 1025. -
Mi a neve a
kevin
elsődleges csoportjának? Vannak más tagok is ebben a csoportban?A csoport neve
db-admin
.emma
ésgrace
vannak még a csoportban. -
Melyik shell van beállítva a
mail
-nek? Ez mit jelent?A
mail
egy egy rendszerfelhasználói fiók, és a shellje a/sbin/nologin
. Valójában a rendszerfelhasználói fiókok, mint például azmail
,ftp
,news
ésdaemon
adminisztrációs feladatok elvégzésére szolgálnak, ezért a normál bejelentkezést meg kell akadályozni ezen fiókok esetén. Ezért a shell általában a/sbin/nologin
vagy a/bin/false
értékre van állítva. -
Kik az
app-developer
csoport tagjai? A tagok közül kik a csoport adminisztrátorai és kik az közönséges tagok?A tagok
catherine
,dave
éschristian
és mindannyian közönséges felhasználók. -
Mennyi a minimális jelszó élettartama a
catherine
felhasználónak? És mennyi a maximális jelszó élettartama?A minimális jelszó élettartam 20 nap, a maximális pedig 90 nap.
-
Mennyi a jelszó inaktivitási ideje a
kevin
felhasználó esetén?A jelszó inaktivitási ideje 2 nap. Ez alatt az időszak alatt
kevin
felhasználónak frissítenie kell a jelszót, különben a fiók letiltásra kerül.
-
-
A konvenció szerint mely azonosítókat rendeljük a rendszerfiókokhoz és melyeket az egyszerű felhasználókhoz?
A rendszerfiókok általában 100-nál kisebb vagy 500 és 1000 közötti UID-vel rendelkeznek, míg a közönséges felhasználók UID-je 1000-től kezdődik, bár egyes régi rendszerek számozása 500-nál kezdődik. A
root
felhasználó UID-je 0. Ne feledjük, hogy az/etc/login.defs
állományban találhatóUID_MIN
ésUID_MAX
értékek határozzák meg a közönséges felhasználók létrehozásához használt UID-k tartományát! Az LPI Linux Essentials és az LPIC-1 szempontjából a rendszerfiókok 1000-nél kisebb UID-vel rendelkeznek, a közönséges felhasználók pedig 1000-nél nagyobb UID-vel. -
Hogyan lehet megtudni, hogy egy felhasználói fiók, amely korábban hozzáférhetett a rendszerhez, most zárolt-e? Tegyük fel, hogy a rendszer shadow jelszavakat használ.
Amikor shadow jelszavakat használunk, az
/etc/passwd
fájl második mezőjében azx
karakter tartozik minden felhasználói fiókhoz, mivel a titkosított felhasználói jelszavak az/etc/shadow
állományban vannak tárolva. Egy felhasználói fiók titkosított jelszava tárolódik ennek a fájlnak a második mezőjében, és ha felkiáltójellel kezdődik, akkor a fiók zárolva van.
Válaszok a gondolkodtató feladatokra
-
Hozzunk létre egy
christian
nevű felhasználói fiókot auseradd -m
paranccsal, és határozzuk meg a felhasználói azonosítóját (UID), a csoport azonosítóját (GID) és a shell-t!# useradd -m christian # cat /etc/passwd | grep christian christian:x:1050:1060::/home/christian:/bin/bash
christian
UID-ja és GID-je 1050 és 1060 (a harmadik és negyedik mező az/etc/passwd
fájlban). A/bin/bash
shell van beállítva ehhez a felhasználói fiókhoz (a hetedik mező az/etc/passwd
fájlban). -
Határozzuk meg
christian
elsődleges csoportjának nevét! Mire következtethetünk?# cat /etc/group | grep 1060 christian:x:1060:
A
christian
elsődleges csoportjának nevechristian
(az/etc/group
első mezője). Ezért az/etc/login.defs
állományban azUSERGROUPS_ENAB
értéke yes, így auseradd
alapértelmezés szerint létrehoz egy csoportot a felhasználói fiók nevével megegyező néven. -
A
getent
parancs segítségével nézzük meg achristian
felhasználói fiók jelszavának öregedési információit!# getent shadow christian christian:!:18015:0:99999:7:::
A
christian
felhasználói fióknak nincs jelszava, és most zárolva van (az/etc/shadow
második mezője felkiáltójelet tartalmaz). Ehhez a felhasználói fiókhoz nincs minimális és maximális jelszóéletkor (az/etc/shadow
negyedik és ötödik mezője 0 és 99999 napra van beállítva), míg a jelszó figyelmeztetési időszaka 7 napra van beállítva (az/etc/shadow
hatodik mezője). Végül pedig nincs inaktivitási időszak (az/etc/shadow
hetedik mezője), és a fiók soha nem jár le (az/etc/shadow
nyolcadik mezője). -
Adjuk hozzá az
editor
csoportot achristian
fiók másodlagos csoportjaihoz. Tegyük fel, hogy ez a csoport már tartalmazza azemma
,dave
ésfrank
fiókokat rendes tagként. Hogyan tudjuk ellenőrini, hogy nincsenek adminisztrátorok ebben a csoportban?# cat /etc/group | grep editor editor:x:1100:emma,dave,frank # usermod -a -G editor christian # cat /etc/group | grep editor editor:x:1100:emma,dave,frank,christian # cat /etc/gshadow | grep editor editor:!::emma,dave,frank,christian
Az
/etc/ghadow
harmadik és negyedik mezője tartalmazza a megadott csoport adminisztrátorait és közönséges tagjait. Mivel tehát a harmadik mező üres azeditor
esetében, nincsenek adminisztrátorok ebben a csoportban (emma
,dave
,frank
éschristian
mind közönséges tagok). -
Futtassuk le az
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
parancsot és írjuk le a kimenetet, amelyet a jogosultságokról ad meg! Melyik négy fájl van biztonsági okokból árnyékolva? Tegyük fel, hogy a rendszer shadow jelszavakat használ!# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
Az
/etc/passwd
és az/etc/group
fájlok a világ számára olvashatóak, és biztonsági okokból árnyékolva vannak. Ha shadow jelszavakat használunk, akkor ezeknek a fájloknak a második mezőjében egyx
látható, mert a felhasználók és csoportok titkosított jelszavai a/etc/shadow
és/etc/gshadow
állományokban vannak tárolva, amelyek csak a root számára olvashatók, és ezen rendszer esetében még ashadow
csoporthoz tartozó tagok számára is.