Az / etc / passwd fájlok megőrzik a felhasználói bejelentkezéshez szükséges összes fontos információt. Hogy egyszerűbb szavakkal magyarázza, az / etc / passwd fájl tárolja a felhasználó fiókjának adatait. Ez a fájl egy egyszerű szöveges fájl, amely tartalmazza a Linux rendszer összes felhasználójának teljes listáját. Információkat tartalmaz a felhasználónévről, jelszóról, UID (felhasználói azonosító), GID (csoport azonosító), shellről és a saját könyvtárról. Ennek a fájlnak olvasási engedéllyel kell rendelkeznie, mivel sok parancssori segédprogramot használnak a felhasználói azonosítók felhasználói névhez való hozzárendeléséhez. Csak korlátozott írási hozzáférési jogosultságokkal kell rendelkeznie, csak a felhasználói vagy a root felhasználói fiókokhoz.
Ez a cikk bemutatja, hogyan és hol tárolhatja a rendszer felhasználói fiókjának jelszavait a Linux disztribúción. Az összes bemutatót megvalósítottuk az Ubuntu 20-on.04 rendszer. Az / etc / passwd fájl azonban megtalálható bármely Linux disztribúción.
Előfeltételek
Rendszergazdai jogosultságokkal kell rendelkeznie az adminisztrációs parancsok futtatásához.
Alapvető megértés az / etc / passwd fájlról
Az / etc / passwd fájl tartalmazza a rendszer felhasználói fiókjával kapcsolatos információkat. Az összes tárolt mező el van választva a kettőspont „:” jelétől.
A következő parancs futtatásakor látni fogja az / etc / passwd fájl minden fájlbejegyzését:
A fenti parancs felsorolja a Linux rendszer összes felhasználóját.
A következő típusú formátum jelenik meg a terminál képernyőjén:
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, amikor a 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 mutatja, hogy a jelszót titkosított formában tároljuk 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 rendelni. Az UID nulla a gyökérfelhasználóhoz, az 1–99 felhasználói azonosítók pedig előre definiált vagy szabványos fiókokhoz vannak rendelve. A további 100-999 UID-k a rendszergazdai fiókokhoz vagy csoportokhoz vannak hozzárendelve. A fenti képernyőképen a felhasználói azonosító 1001.
Csoport azonosítója (GID): A következő mező a csoport azonosítóját jelöli. A GID az / etc / group fájlba van tárolva. A fenti példa alapján a felhasználó az 1001 azonosítóhoz tartozik.
Információk a felhasználói azonosítóról: A következő mező a megjegyzésekhez szól. Ebben a mezőben adhat további információkat a megadott felhasználóval kapcsolatban, 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.
Kezdőlap: Ez a mező mutatja az aktuális felhasználóhoz rendelt otthoni könyvtár helyét. Ha a megadott könyvtár nem létezik, akkor a „/”. A fenti kép a kiemelt felhasználó helyét mutatja a saját könyvtárban, amely a home / kbuzdar.
Parancs // shell: A shell vagy parancs alapértelmezett abszolút elérési útja a / bin / bash. Ez az úgynevezett héj. Például a sysadmin a nologin shell használatával. Úgy viselkedik, mint a rendszer felhasználói fiókok helyettesítő héja. Ha a héj az / sbin / nologin elérési útján található, és a felhasználó közvetlenül a Linux rendszerbe szeretne bejelentkezni, akkor a / sbin / nologin héj bezárja vagy letiltja a kapcsolatot.
A felhasználó keresése az / etc / passwd fájlban
Az / etc / passwd fájl segítségével kereshet egy adott felhasználót a grep paranccsal. Például meg akarjuk keresni a 'kbuzdar' felhasználónévet az / etc / passwd fájlból, a következő szintaxissal, majd könnyedén kereshetünk egy megadott felhasználót, ezzel időt takaríthatunk meg:
$ grep felhasználónév / etc / passwdA fenti szintaxis a következő formára változik:
$ grep kbuzdar / etc / passwd
Vagy
Megjeleníti az / etc / passwd fájl engedélyeit
Mint fent említettük, a root kivételével az összes többi felhasználónak képesnek kell lennie az / etc / passwd fájl engedélyeinek olvasására, és a tulajdonosnak felülfelhasználónak 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
Elolvashatja az / etc / passwd fájlt a Linux rendszerén a következő bash szkript használatával, vagy közvetlenül futtathatja az alább leírtakat, miközben a ciklus parancsok a terminálon.
Hozzon létre egy szövegfájlt, és illessze be a következő kódot:
# összesen hét mező az / etc / passwd fájlból $ f1, f2…, $ f7 néven tárolva
míg IFS =: olvassa -r f1 f2 f3 f4 f5 f6 f7
csinálni
echo "A $ f1 felhasználó a $ f7 parancsértelmezőt használja, és a fájlokat a $ f6 könyvtárban tárolja."
Kész < /etc/passwd
A while ciklus segítségével mind a hét mezőt beolvassa, majd a fájl tartalmát iteratív módon megjeleníti a terminálon.
Mentse el a fenti fájlt 'readfile néven.SH'.
Most futtassa a fenti fájlt a következő paranccsal:
$ bash readfile.SH
Fedezze fel az / etc / shadow fájlt
Az / etc / shadow fájl tartalmazza az összes titkosított jelszót, amelyet ebben a fájlban tárolnak, és 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áthattuk a felhasználó összes fiókadatát és jelszavát, amelyeket az / etc / passwd fájl tárolt a Linux rendszerben. Elolvashatja ezt a fájlt, de csak a root felhasználók rendelkeznek „írási engedéllyel”. Sőt, láttuk az / etc / shadow fájlban tárolt összes titkosított jelszót is. Az / etc / group fájlt is felfedezheti, hogy részleteket kapjon a felhasználó csoportjáról.