GNU/Linux >> Znalost Linux >  >> Linux

Najděte uživatelské účty s prázdným heslem v systému Linux

Nejhorší druh hesla není slabé heslo, ale žádné heslo. Jako správce systému musíte zajistit, aby měl každý uživatelský účet silné heslo. Tento stručný návod vysvětluje, jak v Linuxu najít uživatelské účty s prázdným heslem.

Než se pustíme do tématu, udělejme si rychlou rekapitulaci stínu soubor a jeho účel.

Co je soubor stínového hesla?

V systémech RHEL jsou uživatelská hesla hašována a uložena v zabezpečeném souboru s názvem /etc/shadow . Soubor stínových hesel obsahuje podrobnosti o ověření uživatele a stárnutí hesla uživatelských účtů.

Soubor stínového hesla vlastní root a je čitelný pouze pro superuživatele. Vlastnictví a oprávnění stínového souboru můžete ověřit pomocí následujícího příkazu:

# ls -l /etc/shadow
---------- 1 root root 618 Apr  7 07:52 /etc/shadow

Typická struktura ukázkového řádku ze stínového souboru je uvedena níže.

user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::

Jak již možná víte, stínový soubor má devět polí oddělené dvojtečkou.

Pojďme se rychle podívat na každé pole.

  • Soubor 1 (přihlašovací jméno) - Obsahuje přihlašovací jméno (user1), jak je uvedeno v passwd soubor.
  • Fid 2 (šifrované heslo) - Tento soubor obsahuje hashované (šifrované) heslo uživatele. Pokud je na začátku tohoto souboru jeden vykřičník (!), znamená to, že uživatelský účet je uzamčen. Pokud je toto pole prázdné, uživatel nemá heslo.
  • Polo 3 (poslední změna) - Toto pole zobrazuje počet dní od epochy Unixu (tj. čas Unixu - 1. ledna 1970 00:00:00 UTC), kdy bylo heslo naposledy změněno. Pokud toto pole obsahuje 0, uživatel je nucen změnit své heslo při příštím přihlášení.
  • Podáno 4 (minimálně) - Toto pole zobrazuje minimální počet dní (mind), které musí uplynout, než si uživatel bude moci změnit heslo. Tuto hodnotu v poli můžete změnit pomocí chage příkaz s -m možnost.
  • Pole 5 (maximálně) - Zobrazuje maximální počet dní (maxdays) platnosti hesla, než vyprší platnost hesla uživatele. Pokud je pole 0, znamená to, že tato funkce je zakázána. Hodnotu tohoto pole lze změnit pomocí chage příkaz s -M možnost.
  • Soubor 6 (varování) - Udává počet dní (warndays), po které uživatel dostává upozornění na změnu hesla před vypršením jeho platnosti. Tuto hodnotu můžete změnit pomocí chage příkaz s -W nebo passwd příkaz s -w možnost.
  • Pole 7 (vypršení platnosti hesla) - Definuje maximální povolený počet dní, po které se uživatel bude moci přihlásit pomocí hesla, jehož platnost vypršela. Toto lze změnit pomocí chage příkaz s -I flag nebo passwd příkaz s -i vlajka.
  • Pole 8 (vypršení platnosti účtu) - Definuje počet dní od času UNIX, kdy uživatelský účet vyprší a již nebude dostupný. Hodnotu tohoto pole můžete změnit pomocí chage příkaz s -E možnost.
  • Pole 9 (rezervováno) – Toto pole je vyhrazeno pro budoucí použití.

Jak bylo zmíněno výše, šifrovaná hesla jsou uložena ve druhém poli každé položky v souboru stínových hesel, hned za uživatelským jménem.

Pokud je tedy druhé pole ve stínovém souboru prázdné, uživatel nemá žádné heslo. Dovolte mi ukázat vám příklad, jak najít všechny uživatelské účty bez hesla.

Najděte všechny uživatelské účty bez hesla v systému Linux

Chcete-li zjistit všechny místní uživatelské účty, které nemají heslo, jednoduše spusťte následující příkaz jako root uživatel:

# awk -F: '$2 == "" { print $1, "has empty password!. Please set a strong password ASAP!!" }' /etc/shadow

Ukázkový výstup:

ostechnix has empty password!. Please set a strong password ASAP!!

Můžete také použít getent příkaz v kombinaci s grep a cut příkazy k identifikaci lokálních uživatelských účtů bez hesla v Linuxu.

# getent shadow | grep -Po '^[^:]*(?=::)'

Nebo,

# getent shadow | grep '^[^:]*::' | cut -d: -f1

Všechny výše uvedené příkazy zobrazí pouze místní uživatelské účty, které mají prázdná hesla. Pokud chcete vypsat seznam systémových i uživatelských účtů s prázdným heslem, spusťte.

# getent shadow | grep -Po '^[^:]*(?=:.?:)'

Nebo,

# getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

Najděte konkrétní uživatelský účet bez hesla

Výše uvedené příkazy zobrazí seznam všech místních i systémových účtů, které nemají žádné heslo. Stav hesla konkrétního uživatelského účtu můžete také zkontrolovat pomocí passwd příkaz s -S vlajka.

# passwd -S ostechnix

Ukázkový výstup:

ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)

passwd příkazy budou indikovat stav hesla daného uživatelského účtu. Možné hodnoty jsou:

  • LK - Uživatelský účet je uzamčen.
  • NP - Uživatelský účet nemá žádné heslo.
  • PS - Uživatelský účet má použitelné heslo.

Pozor: V systémech založených na Debianu bude stav hesla označen jako L , N , P respektive.

Nastavit heslo uživatele v systému Linux

Můžete se přihlásit jako uživatel bez hesla, je to naprosto v pořádku. To se však nedoporučuje! Musíte nastavit silné heslo s alespoň 8 znaky včetně velkých, malých písmen, speciálního znaku a čísla.

Chcete-li nastavit heslo k uživatelskému účtu v systému Linux, použijte passwd příkaz jako root uživatel jako níže.

Jako uživatel root:

# passwd ostechnix

Nahraďte ostechnix svým vlastním uživatelským jménem.

Nyní zkontrolujte stav hesla uživatelského účtu pomocí passwd příkaz:

# passwd -S ostechnix

Ukázkový výstup:

ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)

Uzamknout uživatelské účty v systému Linux

Někdy prostě chcete zamknout uživatelské účty prázdnými hesly. Pokud ano, nejprve vyhledejte uživatele s prázdnými hesly, jak je popsáno výše, a uzamkněte je pomocí passwd příkaz s -l označit jako root uživatel jako níže.

# passwd -l ostechnix

Ukázkový výstup:

Locking password for user ostechnix.
passwd: Success

Nyní zkontrolujte stav uživatelského účtu:

# passwd -S ostechnix

Ukázkový výstup:

ostechnix LK 2022-04-07 0 99999 7 -1 (Password locked.)

Vidět? Uživatel byl uzamčen. Už se nemůže přihlásit do systému.

Můžete také použít usermod příkaz s -L (velké L) příznak pro uzamčení uživatele.

# usermod -L ostechnix

Odemknutí uživatelských účtů v systému Linux

K odemknutí uživatelů bez hesla v Linuxu použijte buď passwd příkaz nebo usermod příkaz s -p jako root uživatel.

# passwd ostechnix

Pro odblokování hesla zadejte heslo dvakrát.

Odemknutí uživatele s prázdným heslem pomocí usermod příkaz není možný, měli byste nastavit heslo pomocí usermod -p k odemknutí hesla uživatele.

# usermod -p <password-here> ostechnix

Závěr

V tomto tutoriálu jsme vysvětlili, co je soubor Shadow password a účel tohoto souboru v Linuxu. Poté jsme diskutovali o různých příkazech k nalezení všech uživatelských účtů, které nemají v Linuxu žádné heslo. Nakonec jsme se naučili, jak nastavit heslo pro uživatele a také jak zamykat a odemykat uživatele v Linuxu.


Linux
  1. Jak odstranit uživatelské účty pomocí domovského adresáře v systému Linux

  2. Jak povolit ssh s prázdnými hesly v Linuxu

  3. Jak zkontrolovat heslo v Linuxu?

  1. Automatizace hesel SSH v Linuxu pomocí sshpass

  2. Nainstalujte WordPress na Linux pomocí Apache

  3. Nastavte nebo změňte uživatelské heslo v systému Linux

  1. Jak obnovit heslo Windows pomocí Linuxu

  2. Jak změnit uživatelské heslo v Linuxu

  3. Panic Password na Linuxu