Příkaz who v Linuxu uvádí všechny přihlášené uživatele v systému. Použití je docela jednoduché.
Stačí do příkazového řádku zadat kdo a zobrazí se všichni aktuálně přihlášení uživatelé ve vašem systému Linux.
[email protected]:~# who
root pts/0 2020-02-03 06:48 (152.72.29.73)
john pts/1 2020-02-03 07:02 (187.41.92.90)
jane pts/2 2020-02-03 07:02 (252.142.106.85)
Mějte na paměti, že zobrazuje pouze uživatele, kteří jsou aktuálně přihlášeni do vašeho systému. Existují další způsoby, jak zobrazit všechny uživatele v systému Linux, jako je compgen.
Příkaz who má několik možností, jak získat další specifické informace o přihlášených uživatelích.
Použití příkazu who v Linuxu
Zde je syntaxe příkazu who:
who [options] [filename]
Již jste viděli, jaké informace zobrazuje příkaz who bez jakýchkoli voleb. Nyní se podívejme, jaké možnosti nabízí.
Vytisknout dobu nečinnosti uživatelů
Spolu s běžnými informacemi si můžete vytisknout i dobu nečinnosti uživatelů. Pokud uživatel nějakou dobu nic nenapsal, projeví se to jako doba nečinnosti.
who -u
Jak můžete vidět na výstupu níže, uživatel john byl nečinný po dobu 2 minut a 3 sekund.
[email protected]:~# who -u
root pts/0 2020-02-03 06:48 . 10669 (152.72.29.73)
john pts/2 2020-02-03 07:02 02:03 31528 (187.41.92.90)
Co byste s těmito informacemi mohli dělat? Praktickým využitím je implementace další bezpečnostní vrstvy automatickým odpojováním uživatelů, kteří jsou nečinní déle než určitou dobu.
Zobrazovat pouze uživatelská jména (a jejich počet)
S volbou -q můžete zobrazit pouze přihlášené uživatele a jejich počet.
[email protected]:~# who -q
root john jane
# users=3
Toto je podobné výstupu ‚users command‘ s výjimkou počtu přihlášených uživatelů.
Zkontrolujte, zda lze uživatelům posílat rychlé zprávy nebo ne
Věděli jste, že uživatelé si mohou navzájem posílat zprávy v terminálu Linux pomocí nástrojů příkazového řádku, jako je mesg? Samozřejmě je na uživateli, aby se rozhodl, zda chce takové zprávy dostávat nebo ne.
Pomocí možnosti -T můžete zkontrolovat, zda lze uživateli posílat zprávy nebo ne :
who -T
V níže uvedeném výstupu znamená + ano a – znamená ne. Pokud vidíte ?, znamená to neznámé.
[email protected]:~# who -T
root - pts/0 2020-02-03 06:48 (152.72.29.73)
john + pts/2 2020-02-03 07:02 (187.41.92.90)
Zobrazit informace o sobě
Taková whoami alternativa. Zobrazí informace o uživateli, ale pouze pro vás (tj. uživatele spojeného s aktuálním terminálem).
who -m
Zkontrolovat čas posledního spuštění systému
Poněkud podobně jako u příkazu uptime můžete získat informace o posledním spuštění systému pomocí volby -b příkazu who:
who -b
Jak můžete vidět, můj testovací server byl naposledy spuštěn v 09:41 dne 19. prosince 2019.
[email protected]:~# who -b
system boot 2019-12-19 09:41
Vytiskněte název hostitele přihlášených uživatelů
To by mohlo fungovat pro uživatele ve stejné podsíti. S možností – vyhledávání , můžete zobrazit název hostitele přihlášených uživatelů.
Zkontrolujte minulá přihlášení a špatné přihlašovací údaje
Pravděpodobně víte, že v hierarchii souborového systému Linux ukládá informace o běhu a protokoly.
Příkaz Who načte informace z /var/run/utmp. Chcete-li získat jiné informace, můžete zadat jiné soubory protokolu.
Například můžete získat informace o minulých přihlášeních, pokud použijete soubor /var/log/wtmp.
[email protected]:~# who /var/log/wtmp
root pts/0 2020-02-03 06:48 (152.72.29.73)
jane pts/1 2020-02-03 07:02 (252.142.106.85)
john pts/2 2020-02-03 07:02 (187.41.92.90)
jane pts/1 2020-02-03 07:12 (252.142.106.85)
jane pts/1 2020-02-03 08:55 (252.142.106.85)
Podobně můžete vidět všechny neúspěšné pokusy o přihlášení pomocí souboru /var/log/btmp.
[email protected]:~# who /var/log/btmp
Samozřejmě záleží na tom, zda je váš systém nakonfigurován k protokolování těchto informací.
Nakonec…
Existuje několik dalších voleb, jako je -H, která přidá nadpis jako první řádek výstupu. Vždy je můžete prozkoumat prostřednictvím jeho manuálové stránky.
Uvedl jsem, co uvažuji, důležité příklady toho, kdo velí. Doufám, že se vám tento rychlý malý návod na příkazy Linuxu líbí.