Vyhledávání na webu

Pochopení inicializačních souborů prostředí a uživatelských profilů v systému Linux


Linux je víceuživatelský systém sdílení času, což znamená, že se může přihlásit a používat systém více než jeden uživatel. A správci systému mají za úkol spravovat různé aspekty toho, jak mohou různí uživatelé provozovat systém, pokud jde o instalaci/aktualizaci/odebírání softwaru, programy, které mohou spouštět, soubory, které mohou prohlížet/upravovat a tak dále.

Linux také umožňuje vytvářet nebo udržovat uživatelská prostředí dvěma hlavními způsoby: pomocí systémových (globálních) a uživatelských (osobních) konfigurací. Normálně je základní metodou práce se systémem Linux shell a shell vytváří prostředí v závislosti na určitých souborech, které načte během své inicializace po úspěšném přihlášení uživatele.

Doporučená číst: Jak nastavit proměnné prostředí v Linuxu

V tomto článku vysvětlíme inicializační soubory shellu ve vztahu k uživatelským profilům pro místní správu uživatelů v Linuxu. Dáme vám vědět, kde uchovávat vlastní funkce shellu, aliasy, proměnné a také spouštěcí programy.

Důležité: Pro účely tohoto článku se zaměříme na bash, sh kompatibilní shell, který je nejpopulárnější/používaný shell na systémech Linux.

Pokud používáte jiný shell (zsh, ash, fish atd..) program, přečtěte si jeho dokumentaci a zjistěte více o některých souvisejících souborech, o kterých zde budeme hovořit.

Inicializace shellu v Linuxu

Když je shell vyvolán, existují určité inicializační/spouštěcí soubory, které čte, které pomáhají nastavit prostředí pro samotný shell a uživatele systému; to jsou předdefinované (a přizpůsobené) funkce, proměnné, aliasy a tak dále.

Existují dvě kategorie inicializačních souborů čtených shellem:

  • spouštěcí soubory celého systému – tyto obsahují globální konfigurace, které platí pro všechny uživatele v systému, a jsou obvykle umístěny v adresáři /etc. Patří mezi ně: /etc/profiles a /etc/bashrc nebo /etc/bash.bashrc.
  • spouštěcí soubory specifické pro uživatele – tyto ukládají konfigurace, které se vztahují na jednoho uživatele v systému a jsou obvykle umístěny v domovském adresáři uživatelů jako soubory s tečkami. Mohou přepsat systémové konfigurace. Patří mezi ně: .profiles, .bash_profile, .bashrc a .bash_login.

Shell lze opět vyvolat ve třech možných režimech:

1. Interaktivní přihlašovací prostředí

Shell je vyvolán poté, co se uživatel úspěšně přihlásí do systému pomocí /bin/login, po přečtení přihlašovacích údajů uložených v souboru /etc/passwd.

Když je shell spuštěn jako interaktivní přihlašovací shell, čte /etc/profile a jeho uživatelský ekvivalent ~/.bash_profile.

2. Interaktivní prostředí bez přihlášení

Shell se spouští z příkazového řádku pomocí shellového programu, například $/bin/bash nebo $/bin/zsh. Lze jej také spustit spuštěním příkazu /bin/su.

Kromě toho lze interaktivní nepřihlašovací shell také vyvolat pomocí terminálového programu, jako je konsole, terminátor nebo xterm, z grafického prostředí.

Když je shell spuštěn v tomto stavu, zkopíruje prostředí nadřazeného shellu a načte uživatelsky specifický soubor ~/.bashrc pro další pokyny pro konfiguraci spouštění.

su
ls -la

3. Neinteraktivní Shell

Shell je vyvolán, když je spuštěn shell skript. V tomto režimu zpracovává skript (soubor shellu nebo obecných systémových příkazů/funkcí) a nevyžaduje vstup uživatele mezi příkazy, pokud není jinak. Funguje pomocí prostředí zděděného z nadřazeného shellu.

Pochopení spouštěcích souborů prostředí Shell

V této části více zastíníme spouštěcí soubory shellu, které ukládají konfigurace pro všechny uživatele v systému, a mezi ně patří:

Soubor /etc/profile – ukládá konfigurace prostředí celého systému a spouštěcí programy pro nastavení přihlášení. Do tohoto souboru by měly být přidány všechny konfigurace, které chcete použít pro všechna prostředí systémových uživatelů.

Zde můžete například nastavit svou globální proměnnou prostředí PATH.

cat /etc/profile

Poznámka: V některých systémech, jako je RHEL/CentOS 7, se zobrazí upozornění jako „Nedoporučujeme tento soubor měnit, pokud vědět, co děláte. Mnohem lepší je vytvořit si vlastní skript shellu .sh v /etc/profile.d/ k provádění vlastních změn ve vašem prostředí, protože to zabrání nutnosti začleňování budoucí aktualizace“.

Adresář /etc/profile.d/ – uchovává skripty shellu používané k provádění vlastních změn ve vašem prostředí:

cd /etc/profile.d/
ls  -l 

Soubor /etc/bashrc nebo /etc/bash.bashrc – obsahuje celosystémové funkce a aliasy včetně dalších konfigurací, které platí pro všechny uživatele systému.

Pokud má váš systém více typů shellů, je dobré do tohoto souboru vložit konfigurace specifické pro bash.

cat /etc/bashrc

Vysvětlení spouštěcích souborů prostředí specifických pro uživatele

Dále vysvětlíme více týkající se spouštěcích teček shellu (bash) specifických pro uživatele, které ukládají konfigurace pro konkrétního uživatele v systému, jsou umístěny v domovském adresáři uživatele a zahrnují:

ls -la

Soubor ~/.bash_profile – ukládá specifické uživatelské prostředí a konfigurace spouštěcích programů. Zde můžete nastavit vlastní proměnnou prostředí PATH, jak je znázorněno na snímku obrazovky níže:

cat ~/.bash_profile

Soubor ~/.bashrc – tento soubor ukládá aliasy a funkce specifické pro uživatele.

cat ~/.bashrc

Soubor ~/.bash_login – obsahuje specifické konfigurace, které se normálně provádějí pouze při přihlášení do systému. Pokud ~/.bash_profile chybí, bude tento soubor číst bash.

Soubor ~/.profile – tento soubor se čte bez přítomnosti ~/.bash_profile a ~/.bash_login; může ukládat stejné konfigurace, které mohou být také přístupné jiným shellům v systému. Protože jsme zde mluvili hlavně o bash, mějte na paměti, že ostatní shelly nemusí syntaxi bash rozumět.

Dále také vysvětlíme dva další důležité soubory specifické pro uživatele, které nemusí být nutně inicializační soubory bash:

Soubor ~/.bash_history – bash uchovává historii příkazů, které do systému zadal uživatel. Tento seznam příkazů je uložen v domovském adresáři uživatele v souboru ~/.bash_history.

Chcete-li zobrazit tento seznam, zadejte:

history 
or 
history | less

Soubor ~/.bash_logout – nepoužívá se ke spuštění shellu, ale uchovává specifické pokyny uživatele pro postup odhlášení. Je načten a spuštěn, když uživatel opustí interaktivní přihlašovací shell.

Jedním z praktických příkladů by bylo vymazání okna terminálu po odhlášení. To je důležité pro vzdálená připojení, která po zavření zanechají čisté okno:

cat bash_logout 

Chcete-li získat další informace, podívejte se na obsah těchto inicializačních souborů shellu v různých distribucích Linuxu a také si přečtěte manuálovou stránku bash:

To je prozatím vše! V tomto článku jsme vysvětlili spouštěcí/inicializační soubory shellu v Linuxu. Napište nám pomocí níže uvedeného formuláře pro komentáře.