Bezpečnostní

Kde a jak jsou hesla uložena v systému Linux?

Kde a jak jsou hesla uložena v systému Linux?
Uživatelské jméno s odpovídajícím heslem pro konkrétní účet je primárním požadavkem, jehož prostřednictvím může uživatel přistupovat k systému Linux. Heslo všech uživatelských účtů je uloženo v souboru nebo databázi, aby bylo možné uživatele ověřit během pokusu o přihlášení do systému. Každý uživatel nemá dostatek dovedností a znalostí k tomu, aby našel tento soubor ve svém systému. Pokud však získáte přístup k databázi nebo souboru, který uchovává všechna hesla přihlašovacích uživatelů, můžete snadno přistupovat k systému Linux. Když uživatel zadá uživatelské jméno a heslo v systému Linux pro přihlášení, zkontroluje zadané heslo proti záznamu v různých souborech adresáře '/ etc'.

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:

$ cat / 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 / passwd

Výše uvedená syntaxe se změní na následující tvar:

$ grep kbuzdar / etc / passwd


Nebo

$ grep -w '^ kbuzdar' / etc / passwd

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:

$ ls -l / etc / passwd

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:

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

$ sudo kočka / etc / shadow

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.

Hry Jak vyvíjet hru na Linuxu
Jak vyvíjet hru na Linuxu
Před deseti lety by jen málo uživatelů Linuxu předpovídalo, že jejich oblíbený operační systém bude jednoho dne populární herní platformou pro komerčn...
Hry Porty komerčních her s otevřeným zdrojovým kódem
Porty komerčních her s otevřeným zdrojovým kódem
Zdarma, s otevřeným zdrojovým kódem a multiplatformní herní enginy lze hrát staré i některé z poměrně nedávných herních titulů. Tento článek uvede sez...
Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...