V tomto tutoriálu vysvětlím, jak může uživatel nebo super uživatel (root) změnit heslo v Linuxu. Passwd je příkaz používaný v Linuxu (Redhat, Centos, Ubuntu, Debian, Fedora) a operačních systémech podobných UNIXu ke změně hesla.
Když spustíme passwd
příkaz zašifrované heslo uživatele je uloženo v souboru /etc/shadow.
Normální uživatel (ne root) bude moci pouze změnit své heslo. Zatímco uživatelé root nebo sudo mohou změnit heslo pro jakýkoli účet.
Z bezpečnostních důvodů je vždy vhodné používat silné heslo a pravidelně ho měnit.
Změna hesla
Pokud passwd
příkaz provede uživatel bez oprávnění root, požádá o aktuální heslo a poté nastaví nové heslo tohoto uživatele. Super uživatel nebo root může resetovat heslo pro kteréhokoli uživatele včetně root, aniž by znal aktuální heslo.
Pokud příkaz passwd
je vyvoláno uživatelem bez oprávnění root, musíte nejprve zadat své stávající heslo, než přistoupíte ke změně hesla. Heslo je třeba zadat dvakrát a během psaní se na obrazovce nezobrazuje ozvěna.
$ passwd
Changing password for vagrant.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Jako hesla také nemůžete zadat jednoduchá slova. Příkaz Passwd zkontroluje, jak dlouhé a složité je vaše heslo. V následujícím výstupu je vyzkoušeno jednoduché heslo založené na slovníku.
$ passwd
Changing password for vagrant.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
You must choose a longer password
Enter new UNIX password:
Retype new UNIX password:
Bad: new password is too simple
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Změna hesla jako superuživatel (root)
Každý uživatel systému může změnit pouze své heslo. passwd
příkaz nebere žádný argument, když je spuštěn jako normální uživatel.
Ale jako root můžete změnit a resetovat heslo kteréhokoli uživatele v systému.
Použití je následující:
# passwd [options] [user_name]
Různé možnosti, které lze použít, jsou:
Options:
-a, --all report password status on all accounts
-d, --delete delete the password for the named account
-e, --expire force expire the password for the named account
-h, --help display this help message and exit
-k, --keep-tokens change password only if expired
-i, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-l, --lock lock the password of the named account
-n, --mindays MIN_DAYS set minimum number of days before password
change to MIN_DAYS
-q, --quiet quiet mode
-r, --repository REPOSITORY change password in REPOSITORY repository
-R, --root CHROOT_DIR directory to chroot into
-S, --status report password status on the named account
-u, --unlock unlock the password of the named account
-w, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
-x, --maxdays MAX_DAYS set maximum number of days before password
change to MAX_DAYS
Když root spustí passwd
příkaz obnoví výchozí heslo uživatele root, a pokud zadáte uživatelské jméno za passwd
příkaz pak změní heslo tohoto uživatele.
# passwd vagrant
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
#
Root může dokonce poskytnout jednoduchá hesla. I když se zobrazí varování, heslo bylo stále úspěšně změněno. Heslo systémového uživatele je uloženo v zašifrované podobě v souboru /etc/shadow.
Zobrazit informace o stavu hesla
Chcete-li zobrazit informace o stavu hesla požadovaného uživatele, použijte -S
možnost v příkazu passwd.
# passwd -S vagrant
vagrant P 07/02/2019 0 99999 7 -1
#
První pole zobrazuje uživatelské jméno, druhé pole zobrazuje stav hesla (PS =Password Set, LK =Password locked, NP =No Password), třetí pole ukazuje, kdy bylo heslo naposledy změněno a poslední a čtvrté pole zobrazuje minimální věk, maximální věk, varování období a dobu nečinnosti hesla.
Pro výpis stavu všech uživatelských hesel v systému použijeme -Sa
parametr:
# passwd -Sa
root P 05/14/2019 0 99999 7 -1
daemon L 05/14/2019 0 99999 7 -1
bin L 05/14/2019 0 99999 7 -1
sys L 05/14/2019 0 99999 7 -1
sync L 05/14/2019 0 99999 7 -1
games L 05/14/2019 0 99999 7 -1
man L 05/14/2019 0 99999 7 -1
lp L 05/14/2019 0 99999 7 -1
mail L 05/14/2019 0 99999 7 -1
news L 05/14/2019 0 99999 7 -1
uucp L 05/14/2019 0 99999 7 -1
proxy L 05/14/2019 0 99999 7 -1
www-data L 05/14/2019 0 99999 7 -1
backup L 05/14/2019 0 99999 7 -1
Odebrání hesla uživatele
K odstranění hesla požadovaného uživatele použijeme -d
možnost příkazu:
# passwd -d test
passwd: password expiry information changed.
# passwd -S test
test NP 07/02/2019 0 99999 7 -1
Poznámka:Možnost -d
vyprázdní uživatelské heslo a deaktivuje uživatelský účet.
Nastavit vypršení platnosti hesla
Chcete-li, aby vypršela platnost hesla uživatele a přinutit uživatele, aby heslo změnil při příštím přihlášení, použijte -e
možnost v passwd
příkaz.
# passwd -e test
passwd: password expiry information changed.
# passwd -S test
test NP 01/01/1970 0 99999 7 -1
Zamknutí a odemknutí hesla systémového uživatele
Chcete-li uzamknout heslo uživatele, použijte -l
možnost v passwd
příkaz. Přidá !
na začátku uživatelského hesla. Uživatel nemůže změnit své heslo, když je jeho/její heslo uzamčeno.
# passwd -l test
passwd: password expiry information changed.
# passwd -S test
test L 07/03/2019 0 99999 7 -1
Pro odemknutí hesla uživatele použijte -u
možnost:
# passwd -u test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 7 -1
Nastavení neaktivních dnů pomocí volby -i
Toto bude aktivováno, když platnost hesla vybraného uživatele vyprší a uživatel své heslo nezmění do ‚n‘ počtu dní (tj. 10 dní). Poté se uživatel nebude moci přihlásit.
# passwd -i 10 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 7 10
Nastavit dny varování před vypršením platnosti hesla
Možnost -w
se používá nastavit varovné dny předtím, než je uživatel upozorněn na změnu hesla. To znamená, že uživatel bude upozorněn n počet dní před vypršením platnosti jeho hesla.
# passwd -w 5 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 0 99999 5 10
Nastavte minimální počet dní pro změnu hesla
Níže uvedený příklad testovacího uživatele musí změnit heslo do 30 dnů. Hodnota nula znamená, že uživatel může své heslo kdykoli změnit.
# passwd -n 30 test
passwd: password expiry information changed.
# passwd -S test
test P 07/03/2019 30 99999 5 10
Závěr
V tomto tutoriálu jsme se naučili, jak změnit uživatelské heslo v Linuxu. Pro více informací se podívejte na manuálové stránky příkazu passwd. Děkujeme, že jste si přečetli tento článek, a pokud máte nějaké dotazy, dejte mi vědět.
Přečtěte si také:
- Jak najít/změnit výchozí heslo roota Ubuntu
- Jak přidat uživatele do Sudoers v Linuxu