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.