Hol és hogyan tárolják a jelszavakat Linuxon?

Where How Are Passwords Stored Linux



Az adott fiók megfelelő jelszavával rendelkező felhasználónév az elsődleges követelmény, amellyel a felhasználó hozzáférhet a Linux rendszerhez. Az összes felhasználói fiók jelszava egy fájlban vagy adatbázisban van elmentve, így a felhasználó ellenőrizhető a rendszerbe való bejelentkezés során. Minden felhasználó nem rendelkezik elegendő készséggel és szakértelemmel ahhoz, hogy megtalálja ezt a fájlt a rendszerében. Ha azonban hozzáfér az adatbázishoz vagy egy fájlhoz, amely a bejelentkező felhasználó összes jelszavát megőrzi, akkor könnyen elérheti a Linux rendszert. Amikor a felhasználó megad egy felhasználónevet és jelszót a Linuxon bejelentkezéshez, akkor ellenőrzi a megadott jelszót az „/etc” könyvtár különböző fájljaiban található bejegyzésekhez képest.

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./passwd

A fenti szintaxis a következő alakúra változik:

$markolatvinnyogó/stb./passwd


Vagy

$markolat -ban ben '^kbuzdar' /stb./passwd

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:

$ls -az /stb./passwd

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:

#!/bin/bash
# ö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:

$sudo macska /stb./árnyék

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.