Az /etc /passwd fájlok minden fontos információt tárolnak, ami a felhasználói bejelentkezéshez szükséges. Egyszerűbb magyarázatként az /etc /passwd fájl tárolja a felhasználó fiókadatait. Ez a fájl egy egyszerű szöveges fájl, amely a Linux rendszer összes felhasználójának teljes listáját tartalmazza. Ez tartalmazza a felhasználónév, jelszó, UID (felhasználói azonosító), GID (csoportazonosító), héj és saját könyvtár adatait. Ennek a fájlnak olvasási jogosultsággal kell rendelkeznie, mivel számos parancssori segédprogramot használnak a felhasználói azonosítók és a felhasználónév hozzárendeléséhez. De korlátozott írási hozzáférési jogosultsággal kell rendelkezni csak a felügyeleti vagy a root felhasználói fiókok esetében.
Ez a cikk bemutatja, hogyan és hol tárolhatja a rendszer felhasználói fiókja jelszavait a Linux disztribúción. Az összes bemutatót az Ubuntu 20.04 rendszeren hajtottuk végre. Az /etc /passwd fájlt azonban minden Linux disztribúcióban megtalálhatja.
Előfeltételek
Rendszergazdai parancsok futtatásához root jogosultságokkal kell rendelkeznie.
Alapvető tudnivalók az /etc /passwd fájlról
Az /etc /passwd fájl a rendszer felhasználói fiókjával kapcsolatos információkat tartalmazza. Az összes tárolt mező el van választva a kettősponttól: jel.
A következő parancs futtatásakor látni fogja az /etc /passwd fájl minden fájlbejegyzését:
$macska /stb./passwd
A fenti parancs felsorolja a Linux rendszer összes felhasználóját.
A terminál képernyőjén a következő formátum jelenik meg:
Részletek az /etc /passwd mezőkről Formátum
A fenti képből:
Felhasználónév: Az első mező a felhasználó nevét jelöli. A felhasználónév mező hossza 1-32 karakter között van megadva. Ezt akkor használják, ha egy felhasználó bejelentkezik a rendszerbe. A fenti példában a „khuzdar” a felhasználónév.
Jelszó: A fenti példában az x karakter azt jelzi, hogy a jelszó titkosított formában van tárolva az /etc /shadow fájlban.
Felhasználói azonosító (UID): A felhasználói azonosítót minden felhasználóhoz külön kell hozzárendelni. Az UID nulla a root felhasználóhoz van hozzárendelve, az 1-99 közötti felhasználói azonosítók pedig előre meghatározott vagy szabványos fiókokhoz. A további 100-999-es UID-k rendszergazdai fiókokhoz vagy csoportokhoz vannak hozzárendelve. A fenti képernyőképen a felhasználói azonosító 1001.
Csoportazonosító (GID): A következő mező a csoportazonosítót jelöli. A GID a /etc /group fájlba kerül. A fenti példa alapján a felhasználó az 1001 csoportazonosítóhoz tartozik.
Információk a felhasználói azonosítóról: Az alábbi mező megjegyzéseket tartalmaz. Ebben a mezőben további információkat adhat hozzá a megadott felhasználóhoz, például a felhasználó teljes nevét, telefonszámát stb. A fenti példában azonban a felhasználó nem ad meg telefonszámot.
Főoldal könyvtár: Ez a mező az aktuális felhasználóhoz rendelt saját könyvtár helyét mutatja. Ha a megadott könyvtár nem létezik, akkor a /jelenik meg. A fenti kép a kiemelt felhasználó helyét mutatja a home könyvtárban, amely a home/kbuzdar.
Parancs // shell: A shell vagy parancs alapértelmezett abszolút elérési útja a /bin /bash. Ezt héjnak nevezik. Például a sysadmin a nologin shell használatával. A rendszer felhasználói fiókok helyettesítő héjaként viselkedik. Ha a shell a /sbin /nologin elérési útján található, és a felhasználó közvetlenül a Linux rendszerbe akar bejelentkezni, akkor a /sbin /nologin shell lezárja vagy letiltja a kapcsolatot.
Keresse meg a felhasználót az /etc /passwd fájlban
A grep paranccsal kereshet egy adott felhasználót az /etc /passwd fájlban. Például a következő szintaxis használatával szeretnénk rákeresni a „kbuzdar” felhasználónévre az /etc /passwd fájlból, majd egyszerűen megkereshetjük az adott felhasználót, időt spórolva:
$markolatfelhasználónév/stb./passwdA fenti szintaxis a következő alakúra változik:
$markolatvinnyogó/stb./passwd
Vagy
Az /etc /passwd fájl engedélyeinek megjelenítése
Amint fentebb említettük, a root kivételével minden más felhasználónak képesnek kell lennie olvasni az /etc /passwd fájlra vonatkozó jogosultságot, és hogy a tulajdonosnak superusernek vagy rootnak kell lennie.
Írja be a következőt a fájl olvasási engedélyeinek ellenőrzéséhez:
A következő kimeneti minta jelenik meg a terminálon:
Az /etc /passwd fájl olvasása
Az /etc /passwd fájlt elolvashatja Linux rendszeren az alábbi bash parancsfájl használatával, vagy közvetlenül futtathatja az alább leírtakat, miközben a terminálon hurokparancsokat ad.
Hozzon létre egy szöveges fájlt, és illessze be a következő kódot:
# összesen hét mező az /etc /passwd könyvtárból $ f1, f2 ..., $ f7 néven
míg IFS=:olvas -rf1 f2 f3 f4 f5 f6 f7
tedd
kidobta 'Felhasználó$ f1használat$ f7shell és tárolja a fájlokat$ f6Könyvtár.'
Kész < /stb./passwd
A while ciklus használatával mind a hét mezőt elolvassa, majd ismételten megjeleníti a fájl tartalmát a terminálon.
Mentse el a fenti fájlt „readfile.sh” névvel.
Most futtassa a fenti fájlt a következő paranccsal:
$bashreadfile.sh
Fedezze fel az /etc /shadow fájlt
Az /etc /shadow fájl tartalmazza a fájlban tárolt összes titkosított jelszót, amelyek csak a root felhasználók számára olvashatók.
Futtassuk a következő parancsot a tartalom megjelenítéséhez:
Az összes jelszót titkosított formátumban láthatja:
Következtetés
A fenti cikkből láttuk, hogy a felhasználó összes fiókadata és jelszava a /etc /passwd fájlban van tárolva a Linux rendszerben. Elolvashatja ezt a fájlt, de csak a root felhasználók rendelkeznek írási jogosultsággal. Ezenkívül láttuk az /etc /shadow fájlban tárolt összes titkosított jelszót is. Az /etc /group fájlban is felfedezheti a felhasználó csoportjának részleteit.