Soubory / etc / passwd uchovávají všechny důležité informace, které jsou nezbytné pro přihlášení uživatele. Abychom to vysvětlili jednoduššími slovy, soubor / etc / passwd ukládá podrobnosti o účtu uživatele. Tento soubor je soubor ve formátu prostého textu, který obsahuje úplný seznam všech uživatelů ve vašem systému Linux. Obsahuje informace o uživatelském jménu, hesle, UID (ID uživatele), GID (ID skupiny), prostředí a domovském adresáři. Tento soubor by měl mít oprávnění ke čtení, protože k mapování ID uživatelů na uživatelské jméno se používá mnoho obslužných programů příkazového řádku. Měla by však mít omezená oprávnění pro přístup k zápisu pouze pro uživatelské účty superuživatele nebo root.
Tento článek předvede, jak a kde můžete v distribuci Linuxu ukládat hesla účtů uživatelů systému. Implementovali jsme všechny demonstrace na Ubuntu 20.04 systém. Soubor / etc / passwd však najdete v jakékoli distribuci Linuxu.
Předpoklady
Ke spouštění administrativních příkazů byste měli mít oprávnění root.
Základní informace o souboru / etc / passwd
Soubor / etc / passwd obsahuje informace o uživatelském účtu vašeho systému. Všechna uložená pole jsou oddělena od dvojtečky „:“.
Když spustíte následující příkaz, uvidíte každou položku souboru / etc / passwd:
Výše uvedený příkaz zobrazí seznam všech uživatelů vašeho systému Linux.
Na obrazovce terminálu se zobrazí následující typ formátu:
Podrobnosti o polích / etc / passwd Format
Z výše uvedeného obrázku:
Uživatelské jméno: První pole představuje jméno uživatele. Délka pole pro uživatelské jméno je definována mezi 1–32 znaky. Používá se, když se uživatel přihlásí do systému. Ve výše uvedeném příkladu je uživatelské jméno „khuzdar“.
Heslo: Ve výše uvedeném příkladu znak „x“ ukazuje, že heslo je uloženo v zašifrované podobě v souboru / etc / shadow.
ID uživatele (UID): Každému uživateli musí být ID uživatele přiřazeno samostatně. Uživateli root je přiřazena nula UID a ID uživatelů od 1 do 99 jsou přiřazeny předdefinovaným nebo standardním účtům. Další identifikátory UID od 100 do 999 jsou přiřazeny k správcovským účtům nebo skupinám systému. Na výše uvedeném snímku obrazovky je ID uživatele 1001.
ID skupiny (GID): Další pole představuje ID skupiny. GID je uložen do souboru / etc / group. Na základě výše uvedeného příkladu uživatel patří do skupiny id 1001.
Informace o ID uživatele: Následující pole je určeno pro komentáře. Do tohoto pole můžete přidat další informace o zadaném uživateli, například jeho celé jméno, telefonní číslo atd. Ve výše uvedeném příkladu však uživatel neposkytne žádné telefonní číslo.
Domovský adresář: Toto pole zobrazuje umístění domovského adresáře, který je přiřazen aktuálnímu uživateli. Pokud zadaný adresář neexistuje, zobrazí se „/“. Výše uvedený obrázek ukazuje umístění zvýrazněného uživatele v domovském adresáři, kterým je home / kbuzdar.
Příkaz // shell: Výchozí absolutní cesta shellu nebo příkazu je / bin / bash. Toto se nazývá shell. Například sysadmin využívající prostředí nologin. Chová se jako náhradní shell pro uživatelské účty systému. Pokud je shell umístěn na cestě k / sbin / nologin a uživatel se chce přihlásit přímo do systému Linux, prostředí / sbin / nologin shell ukončí nebo zakáže připojení.
Hledejte uživatele v souboru / etc / passwd
Pomocí příkazu grep můžete vyhledat konkrétního uživatele pomocí souboru / etc / passwd. Například chceme prohledat uživatelské jméno 'kbuzdar' ze souboru / etc / passwd pomocí následující syntaxe, poté můžeme snadno vyhledat konkrétního uživatele a ušetřit náš čas:
$ grep uživatelské jméno / etc / passwdVýše uvedená syntaxe se změní na následující tvar:
$ grep kbuzdar / etc / passwd
Nebo
Zobrazit oprávnění v souboru / etc / passwd
Jak jsme zmínili výše, všichni ostatní uživatelé, kromě root, by měli být schopni číst oprávnění v souboru / etc / passwd a že vlastník musí být superuser nebo root.
Zadejte následující pro kontrolu oprávnění ke čtení v souboru:
Na terminálu se zobrazí následující ukázka výstupu:
Čtení souboru / etc / passwd
Soubor / etc / passwd ve vašem systému Linux si můžete přečíst pomocí následujícího bash skriptu nebo přímo spustit to, co je napsáno níže, zatímco příkazy smyčky na terminálu.
Vytvořte textový soubor a vložte do něj následující kód:
# celkem sedm polí z / etc / passwd uložených jako $ f1, f2…, $ f7
while IFS =: read -r f1 f2 f3 f4 f5 f6 f7
dělat
echo "Uživatel $ f1 používá prostředí $ f7 a ukládá soubory do adresáře $ f6."
Hotovo < /etc/passwd
Pomocí smyčky while přečte všech sedm polí a poté iterativně zobrazí obsah souboru na terminálu.
Uložte výše uvedený soubor s názvem 'readfile.ona.
Nyní spusťte výše uvedený soubor pomocí následujícího příkazu:
$ bash readfile.sh
Prozkoumejte soubor / etc / shadow
Soubor / etc / shadow obsahuje všechna vaše šifrovaná hesla uložená v tomto souboru, která jsou čitelná pouze pro uživatele root.
Spustíme následující příkaz k zobrazení obsahu:
Všechna hesla vidíte v šifrovaném formátu:
Závěr
Z výše uvedeného článku jsme viděli všechny podrobnosti účtu uživatele a hesla uložená v souboru / etc / passwd v systému Linux. Tento soubor si můžete přečíst, ale „oprávnění k zápisu“ mají pouze uživatelé root. Kromě toho jsme také viděli všechna šifrovaná hesla uložená v souboru / etc / shadow. Můžete také prozkoumat soubor / etc / group a získat podrobnosti o skupině uživatele.