Weboldal keresés

Az alapértelmezett felhasználói shell megváltoztatása Linuxban


A shell vagy parancssori interfész a Linux operációs rendszer kulcsfontosságú összetevője, amely hatékony módot biztosít a felhasználóknak a rendszerrel való interakcióra.

A Linux rendszer minden felhasználója hozzá van rendelve egy alapértelmezett shell-hez, amely meghatározza a rendszerrel való interakció során használt parancsértelmezőt.

A felhasználó alapértelmezett shelljének megváltoztatására különféle okok miatt lehet szükség, például személyes preferenciák vagy egy másik shell által kínált speciális szolgáltatások szükségessége miatt.

Ebben a cikkben megvizsgáljuk a felhasználó alapértelmezett shelljének megváltoztatásának folyamatát a Linuxban. A shell egy program, amely parancsokat fogad el és értelmez; számos nyílt forráskódú shell létezik, például bash, sh, ksh, zsh, fish, és sok más kevésbé ismert shell elérhető Linuxon.

Linux Bash Shell

A Bash (/bin/bash) egy népszerű shell a legtöbb, ha nem az összes Linux disztribúción, és általában a felhasználói fiókok alapértelmezett shellje.

Számos oka van a felhasználói shell megváltoztatásának Linuxban, beleértve a következőket:

  • A normál felhasználói bejelentkezés blokkolása vagy letiltása Linux rendszerben egy nologin shell használatával.
  • Használjon shell-burkoló szkriptet vagy programot a felhasználói parancsok naplózására, mielőtt azokat végrehajtásra elküldené egy shell-re. Itt adja meg a shell burkolót a felhasználó bejelentkezési shelljeként.
  • A felhasználó igényeinek kielégítésére (egy adott shellt akar használni), különösen azokét, akik rendszergazdai jogokkal rendelkeznek.

Amikor felhasználói fiókokat hoz létre a useradd vagy adduser segédprogrammal, a --shell jelzővel megadható a felhasználó bejelentkezési shelljének neve, amely eltér a megfelelő konfigurációs fájlokban megadotttól.

A bejelentkezési shell elérhető szöveges felületről vagy SSH-n keresztül egy távoli Linux-gépről. Ha azonban grafikus felhasználói felületen (GUI) keresztül jelentkezik be, elérheti a shellt olyan terminálemulátorokból, mint az xterm, konsole és sok más.

Sorolja fel a Linux rendszeren elérhető shelleket

Linuxban az /etc/shells fájlt általában a telepített érvényes bejelentkezési parancsértelmezők listájának tárolására használják a rendszeren. Ez a fájl segít azonosítani, hogy a felhasználók mely parancsértelmezőket állíthatják be alapértelmezett shellként olyan parancsokkal, mint a chsh.

A Linux rendszeren elérhető parancsértelmezők listájának megtekintéséhez használja a következő parancsot:

cat /etc/shells

Mintakimenet:

/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

Mielőtt továbblépne, vegye figyelembe, hogy:

  • A felhasználó bármire módosíthatja saját shelljét: ennek azonban szerepelnie kell az /etc/shells fájlban.
  • Az /etc/shells fájlban nem szereplő parancsértelmezőt csak a root futtathatja.
  • Ha egy fiók korlátozott bejelentkezési parancsértelmezővel rendelkezik, akkor csak a root módosíthatja a felhasználó shelljét.

Keresse meg a Current Shellt Linuxban

Az alapértelmezett felhasználói shell megváltoztatása előtt fontos meghatározni az aktuális shellt a következő echo parancs futtatásával, amely megjeleníti a bejelentkezett felhasználó aktuális shelljét.

echo $SHELL

/bin/bash

A kimenet azt mutatja, hogy a felhasználó jelenleg a Bash (/bin/bash) parancsértelmezőt használja.

Az alapértelmezett shell megváltoztatása Linuxban

Most beszéljünk az alapértelmezett Linux felhasználói shell megváltoztatásának három különböző módjáról.

1. usermod segédprogram

A usermod parancs a felhasználói fiók adatainak módosítására szolgál, az /etc/passwd fájlban és a -s vagy --shell kapcsolóban tárolva. a felhasználó bejelentkezési shelljének megváltoztatására szolgál.

Ebben a példában először ellenőrizzük a tecmint felhasználó fiókinformációit az alapértelmezett bejelentkezési shell megtekintéséhez, majd módosítjuk a bejelentkezési shelljét /bin/sh értékről /bin/bash értékre. következik.

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

Mostantól a „tecmint” felhasználó alapértelmezett shellje bash-ra változik.

2. chsh segédprogram

A chsh paranccsal interaktív módon módosíthatja a felhasználó alapértelmezett bejelentkezési parancsértelmezőjét a -s vagy a –shell opció használatával, ahogy az ábrán látható.

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

Cserélje ki a „/bin/sh” elemet a beállítani kívánt shell tényleges elérési útjára. Például a shell sh értékre állításához használja a „/bin/sh” értéket.

Fontos megjegyezni, hogy az alapértelmezett shell módosításai általában a következő bejelentkezéskor lépnek érvénybe.

A két módszer mindenekelőtt az /etc/passwd fájlban megadott parancsértelmezőt módosítja, amelyet az alábbi harmadik módszer szerint manuálisan is szerkeszthet.

3. Módosítsa a felhasználói shellt az /etc/passwd fájlban

Ezzel a módszerrel egyszerűen nyissa meg az /etc/passwd fájlt bármelyik kedvenc parancssori szövegszerkesztővel, és módosítsa egy adott felhasználó shelljét.

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

Keresse meg annak a felhasználónak a sorát, akinek az alapértelmezett parancsértelmezőjét módosítani szeretné. Például, ha a sor így néz ki:

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

Az utolsó mező, a /bin/bash, az alapértelmezett shellt (ebben az esetben a Bash) jelenti.

A shell mező értékének a kívánt shellre történő módosításához egyszerűen adja meg a shell elérési útját (/bin/zsh) az ábrán látható módon.

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

Ha végzett a szerkesztéssel, mentse el és zárja be a fájlt.

Hogyan telepítsünk másik shellt?

Más szoftvercsomagokhoz hasonlóan a népszerű parancsértelmezők, mint például a Zsh és a Fish, könnyen telepíthetők a disztribúció tárházából, az ábra szerint.

Telepítse a Zsh Shell-t Linuxra

A Zsh Linux rendszerre történő telepítéséhez használja a következő megfelelő parancsot az adott Linux disztribúcióhoz.

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]    

Telepítse a Fish Shell-t Linuxra

A Zsh Linux rendszerre történő telepítéséhez használja a következő megfelelő parancsot az adott Linux disztribúcióhoz.

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]    

Ne felejtse el elolvasni ezeket a kapcsolódó témákat:

Ebben a cikkben a felhasználói shell megváltoztatásának különböző módjait írtuk le Linuxban. Ha bármilyen gondolatát meg szeretne osztani velünk, használja az alábbi megjegyzés részt.