3 způsoby zamykání a odemykání uživatelských účtů v Linuxu
Může existovat řada důvodů, proč byste chtěli deaktivovat uživatele ve víceuživatelském prostředí Linuxu. Možná zaměstnanec opustil organizaci a místo úplného smazání uživatele uzamkl účet pro účely archivace.
V tomto tutoriálu vám ukážu tři způsoby, jak uzamknout uživatele v příkazovém řádku Linuxu. Také proberu, jak uživatele odemknout.
Upozorňujeme, že k provedení těchto změn je třeba buď root nebo mít root přístup přes sudo .
Metoda 1:Uzamykání a odemykání uživatelů pomocí příkazu passwd
Příkaz passwd v Linuxu se zabývá hesly uživatelského účtu. Tento příkaz můžete také použít k uzamčení uživatelského účtu.
Příkaz v podstatě funguje na souboru /etc/passwd. Tento soubor můžete upravit ručně, ale nedoporučuji to.
Chcete-li uživatele zamknout pomocí příkazu passwd, můžete použít volbu -l nebo –lock tímto způsobem:
passwd -l user_name
Ověřte stav uživatele pomocí příkazu passwd
Zda je uživatel uzamčen nebo odemčen, můžete zjistit pomocí volby -S nebo –status příkazu passwd.
passwd -S uživatelské_jméno
Podívejte se na druhé pole ve výstupu. Zde je to, co to znamená:
– P nebo PS:heslo je nastaveno (uživatel je odemčen)
– L nebo LK:Uživatel je uzamčen
– N nebo NP:Uživatel nepotřebuje heslo
Zde je ukázkový výstup příkazu passwd:
standardní P 14. 10. 2019 0 99999 7 -1
Chcete-li uživatele odemknout příkazem passwd, můžete použít volbu -u nebo –unlock:
passwd -u user_name
Na Ubuntu uvidíte výstup podobný tomuto pro zamykání i odemykání uživatele:
passwd: password expiry information changed
A co přihlášení přes SSH?
Se zamykáním uživatelů tímto způsobem je velký problém. Vzhledem k tomu, že funguje pouze se souborem /etc/passwd, bude se zamčený uživatel stále moci přihlásit pomocí klíčů SSH (pokud je nastaveno přihlášení pomocí klíče SSH). V další části vám ukážu, jak se s tím vypořádat.
Metoda 2:Uzamykání a odemykání uživatelů pomocí příkazu usermod
Můžete také použít příkaz usermod. Příkaz se primárně používá pro úpravu uživatelských účtů v Linuxu. Stav uživatele můžete také upravit uzamčením nebo odemknutím pomocí usermod.
Chcete-li uživatele zamknout, můžete použít volbu -L tímto způsobem:
usermod -L user_name
K odemknutí uživatele můžete použít volbu -U:
usermod -U user_name
Jak ověříte, zda je uživatel uzamčen nebo ne? Příkaz usermod funguje také na souboru /etc/passwd, takže můžete použít příkaz passwd -S jméno_uživatele ke kontrole stavu uživatele.
Ale usermod funguje také se souborem /etc/passwd, takže to znamená, že zamčený uživatel by se mohl stále přihlásit pomocí klíčů SSH, že? To je správně. Existují však způsoby, jak tento problém překonat.
Můžete například změnit shell uživatele na nologin, což uživateli neumožní přihlásit se do shellu.
Další metodou je uzamknout uživatele a poskytnout datum vypršení platnosti v minulosti. Dělá to tak, že deaktivuje účet k minulému datu a poté jej uzamkne.
Ujistěte se, že minulé datum je mezi 1970-01-02 a aktuálním datem.
usermod -L --expiredate 1970-01-02 user_name
Můžete to obrátit pomocí tohoto příkazu:
usermod -U --expiredate '' user_name
Existuje podobný způsob, jak uzamknout uživatele v Linuxu pomocí příkazu chage. Podívejme se na to v další sekci.
Metoda 3:Uzamykání a odemykání uživatelů pomocí příkazu chage
Příkaz change se používá pro změnu informací o vypršení platnosti hesla uživatele. Lze jej použít k automatickému uzamčení neaktivního uživatele po určitém počtu dní nečinnosti.
V podstatě to, co jste udělali s příkazem usermod v předchozí části, lze dosáhnout pomocí příkazu chage takto:
chage -E 1 username
V zásadě jste nastavili datum vypršení platnosti na 1970-01-02. Podrobnosti můžete vidět takto:
[email protected]:~$ sudo chage -l standard
Last password change : Nov 07, 2019
Password expires : never
Password inactive : never
Account expires : Jan 02, 1970
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
Datum vypršení platnosti můžete odstranit a odemknout tak uživatele tímto způsobem:
chage -E -1 username
Nakonec…
Jako vždy existují různé způsoby, jak provést úkol v příkazovém řádku Linuxu. Ukázal jsem zde tři způsoby, jak uzamknout a odemknout uživatele v Linuxu. Znáte lepší způsob nebo máte nějaký návrh osvědčených postupů pro zamykání uživatelů? Sdílejte to v sekci komentářů.