Vyhledávání na webu

Jak změnit výchozí uživatelské prostředí v Linuxu


Shell neboli rozhraní příkazového řádku je klíčovou součástí operačního systému Linux a poskytuje uživatelům výkonný způsob interakce se systémem.

Každý uživatel v systému Linux je spojen s výchozím shellem, který určuje interpreter příkazů, který používají při interakci se systémem.

Změna výchozího prostředí uživatele může být nezbytná z různých důvodů, jako jsou osobní preference nebo potřeba specifických funkcí nabízených jiným prostředím.

V tomto článku prozkoumáme proces změny výchozího prostředí uživatele v systému Linux. Shell je program, který přijímá a interpretuje příkazy; existuje několik shellů s otevřeným zdrojovým kódem, jako jsou bash, sh, ksh, zsh, fish, a mnoho dalších méně známých shellů dostupných v Linuxu.

Linux Bash Shell

Bash (/bin/bash) je oblíbený shell ve většině distribucí Linuxu, pokud ne ve všech, a obvykle je výchozím prostředím pro uživatelské účty.

Existuje několik důvodů pro změnu uživatelského prostředí v Linuxu, včetně následujících:

  • Chcete-li zablokovat nebo zakázat normální přihlášení uživatelů v Linuxu pomocí nologin shellu.
  • Použijte skript nebo program shell wrapper k protokolování uživatelských příkazů před jejich odesláním do shellu ke spuštění. Zde určíte obal shellu jako přihlašovací shell uživatele.
  • Pro splnění požadavků uživatele (chce používat specifický shell), zejména těch s administrátorskými právy.

Při vytváření uživatelských účtů pomocí obslužných programů useradd nebo adduser lze příznak --shell použít ke specifikaci jiného jména uživatelského přihlašovacího prostředí, než je uvedeno v příslušných konfiguračních souborech.

Přihlašovací shell je přístupný z textového rozhraní nebo přes SSH ze vzdáleného linuxového počítače. Pokud se však přihlásíte pomocí grafického uživatelského rozhraní (GUI), můžete k shellu přistupovat z terminálových emulátorů, jako jsou xterm, konsole a mnoho dalších.

Seznam dostupných shellů v systému Linux

V Linuxu se běžně používá soubor /etc/shells k uložení seznamu nainstalovaných platných přihlašovacích shellů v systému. Tento soubor pomáhá při identifikaci, které shelly jsou uživatelům k dispozici k nastavení jako jejich výchozí shell pomocí příkazů jako chsh.

Chcete-li zobrazit seznam dostupných shellů v systému Linux, můžete použít následující příkaz:

cat /etc/shells

Ukázkový výstup:

/etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen

Než budete pokračovat, mějte na paměti, že:

  • Uživatel může změnit svůj vlastní shell na cokoli: což však musí být uvedeno v souboru /etc/shells.
  • Pouze root může spustit shell, který není uveden v souboru /etc/shells.
  • Pokud má účet omezený přihlašovací shell, pak pouze root může změnit shell tohoto uživatele.

Najděte aktuální prostředí v Linuxu

Před změnou výchozího uživatelského shellu je důležité určit aktuální shell spuštěním následujícího příkazu echo, který zobrazí aktuální shell pro přihlášeného uživatele.

echo $SHELL

/bin/bash

Výstup ukazuje, že uživatel aktuálně používá prostředí Bash (/bin/bash).

Změna výchozího prostředí v Linuxu

Nyní probereme tři různé způsoby, jak změnit výchozí uživatelské prostředí Linuxu.

1. Usermod Utility

Příkaz usermod se používá k úpravě podrobností o uživatelském účtu, uložených v souboru /etc/passwd a volbě -s nebo --shell se používá ke změně přihlašovacího shellu uživatele.

V tomto příkladu nejprve zkontrolujeme informace o účtu uživatele tecmint, abychom viděli jeho výchozí přihlašovací shell, a poté změníme jeho přihlašovací shell z /bin/sh na /bin/bash jako následuje.

grep tecmint /etc/passwd
sudo usermod --shell /bin/bash tecmint
grep tecmint /etc/passwd

Nyní se výchozí shell pro uživatele „tecmint“ změní na bash.

2. Nástroj chsh

Příkaz chsh se používá k interaktivní změně výchozího přihlašovacího prostředí uživatele pomocí volby -s nebo –shell, jak je znázorněno na obrázku.

grep tecmint /etc/passwd
sudo chsh --shell /bin/sh tecmint
grep tecmint /etc/passwd

Nahraďte „/bin/sh“ skutečnou cestou k shellu, který chcete nastavit. Například pro nastavení shellu na sh byste použili „/bin/sh“.

Je důležité si uvědomit, že změny výchozího prostředí se obvykle projeví při vašem příštím přihlášení.

Tyto dvě metody především upravují shell specifikovaný v souboru /etc/passwd, který můžete upravit ručně jako ve třetí metodě níže.

3. Změňte uživatelské prostředí v souboru /etc/passwd

Při této metodě jednoduše otevřete soubor /etc/passwd pomocí libovolného z vašich oblíbených textových editorů příkazového řádku a změňte prostředí konkrétního uživatele.

sudo vi /etc/passwd
OR
sudo nano /etc/passwd

Vyhledejte řádek odpovídající uživateli, pro kterého chcete změnit výchozí shell. Pokud řádek vypadá například takto:

tecmint:x:1000:1000:John Doe:/home/tecmint:/bin/bash

Poslední pole, /bin/bash, představuje výchozí shell (v tomto případě Bash).

Chcete-li změnit hodnotu pole shellu na požadovaný shell, jednoduše zadejte cestu k shellu (/bin/zsh) podle obrázku.

tecmint:x:1000:1000:John Doe:/home/tecmint:/bin/zsh

Po dokončení úprav soubor uložte a zavřete.

Jak nainstalovat další Shell?

Podobně jako u jiných softwarových balíčků lze oblíbené shelly jako Zsh a Fish snadno nainstalovat z úložiště vaší distribuce, jak je znázorněno.

Nainstalujte Zsh Shell v Linuxu

Chcete-li nainstalovat Zsh na Linux, použijte následující příkaz vhodný pro vaši konkrétní distribuci Linuxu.

sudo apt install zsh         [On Debian, Ubuntu and Mint]
sudo yum install zsh         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/zsh  [On Gentoo Linux]
sudo apk add zsh             [On Alpine Linux]
sudo pacman -S zsh           [On Arch Linux]
sudo zypper install zsh      [On OpenSUSE]    

Nainstalujte Fish Shell v Linuxu

Chcete-li nainstalovat Zsh na Linux, použijte následující příkaz vhodný pro vaši konkrétní distribuci Linuxu.

sudo apt install fish         [On Debian, Ubuntu and Mint]
sudo yum install fish         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fish  [On Gentoo Linux]
sudo apk add fish             [On Alpine Linux]
sudo pacman -S fish           [On Arch Linux]
sudo zypper install fish      [On OpenSUSE]    

Nezapomeňte si přečíst tato související témata:

V tomto článku jsme popsali různé způsoby změny uživatelského prostředí v Linuxu. Chcete-li se s námi podělit o jakékoli myšlenky, použijte sekci komentářů níže.