Kako promijeniti zadanu korisničku ljusku u Linuxu


Shell, ili interfejs komandne linije, ključna je komponenta Linux operativnog sistema, pružajući korisnicima moćan način interakcije sa sistemom.

Svaki korisnik na Linux sistemu je pridružen zadanoj ljusci, koja određuje interpreter komandi koji koriste prilikom interakcije sa sistemom.

Promjena korisničke zadane ljuske može biti neophodna iz različitih razloga, kao što su osobne preferencije ili potreba za specifičnim funkcijama koje nudi druga ljuska.

U ovom članku ćemo istražiti proces promjene zadane ljuske korisnika u Linuxu. Ljuska je program koji prihvata i interpretira komande; postoji nekoliko shell otvorenog koda kao što su bash, sh, ksh, zsh, fish, i mnoge druge manje poznate ljuske dostupne na Linuxu.

Linux Bash Shell

Bash (/bin/bash) je popularna ljuska na većini, ako ne i svim Linux distribucijama, i obično je zadana ljuska za korisničke račune.

Postoji nekoliko razloga za promjenu korisničke ljuske u Linuxu uključujući sljedeće:

  • Da biste blokirali ili onemogućili normalne korisničke prijave u Linuxu koristeći nologin shell.
  • Koristite skriptu ili program omotača ljuske za evidentiranje korisničkih naredbi prije nego što se pošalju ljusci na izvršenje. Ovdje specificirate omotač ljuske kao ljusku za prijavu korisnika.
  • Za ispunjavanje zahtjeva korisnika (želi koristiti određenu ljusku), posebno onih s administrativnim pravima.

Prilikom kreiranja korisničkih naloga sa uslužnim programima useradd ili adduser, oznaka --shell može se koristiti za određivanje imena korisničkog ljuske za prijavu koje nije navedeno u odgovarajućim konfiguracijskim datotekama.

Shell-u za prijavu može se pristupiti iz interfejsa zasnovanog na tekstu ili preko SSH-a sa udaljene Linux mašine. Međutim, ako se prijavite putem grafičkog korisničkog interfejsa (GUI), ljusci možete pristupiti iz emulatora terminala kao što su xterm, konsole i mnogi drugi.

Navedite dostupne školjke na Linux sistemu

U Linuxu se datoteka /etc/shells obično koristi za pohranjivanje liste instaliranih valjanih ljuski za prijavu na sistem. Ova datoteka pomaže u identifikaciji koje su ljuske dostupne korisnicima da postave kao svoju zadanu ljusku koristeći komande kao što je chsh.

Za pregled liste dostupnih ljuski na Linux sistemu, možete koristiti sljedeću naredbu:

cat /etc/shells

Uzorak izlaza:

/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

Prije nego što nastavite dalje, imajte na umu sljedeće:

  • Korisnik može promijeniti svoju sopstvenu ljusku u bilo šta: što, međutim, mora biti navedeno u datoteci /etc/shells.
  • Samo root može pokrenuti ljusku koja nije navedena u datoteci /etc/shells.
  • Ako račun ima ograničenu ljusku za prijavu, tada samo root može promijeniti ljusku tog korisnika.

Pronađite trenutnu ljusku u Linuxu

Prije promjene ljuske zadanog korisnika, važno je odrediti trenutnu ljusku pokretanjem sljedeće echo naredbe, koja prikazuje trenutnu ljusku za prijavljenog korisnika.

echo $SHELL

/bin/bash

Izlaz pokazuje da korisnik trenutno koristi Bash (/bin/bash) ljusku.

Promjena zadane ljuske u Linuxu

Hajde sada da razgovaramo o tri različita načina za promjenu zadane Linux korisničke ljuske.

1. usermod Utility

Naredba usermod se koristi za izmjenu detalja korisničkog računa, pohranjenih u datoteci /etc/passwd i opciji -s ili --shell koristi se za promjenu korisničkog login shell-a.

U ovom primjeru, prvo ćemo provjeriti informacije o korisničkom računu tecmint-a da vidimo njegovu zadanu ljusku za prijavu, a zatim ćemo promijeniti njenu ljusku za prijavu iz /bin/sh u /bin/bash kao slijedi.

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

Sada će zadana ljuska za korisnika “tecmint” biti promijenjena u bash.

2. chsh Utility

Naredba chsh se koristi za promjenu korisničke zadane ljuske za prijavu interaktivno korištenjem opcije -s ili –shell kao što je prikazano.

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

Zamijenite “/bin/sh” stvarnom putanjom do ljuske koju želite postaviti. Na primjer, da postavite ljusku na sh, koristili biste “/bin/sh“.

Važno je napomenuti da promjene zadane ljuske obično stupaju na snagu nakon sljedećeg prijavljivanja.

Dvije iznad svih modificiraju shell specificiranu u datoteci /etc/passwd koju možete uređivati ručno kao u trećem metodu ispod.

3. Promijenite korisničku školjku u /etc/passwd datoteci

U ovoj metodi, jednostavno otvorite datoteku /etc/passwd koristeći bilo koji od vaših omiljenih uređivača teksta komandne linije i promijenite ljusku određenog korisnika.

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

Pronađite liniju koja odgovara korisniku za kojeg želite promijeniti zadanu ljusku. Na primjer, ako linija izgleda ovako:

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

Posljednje polje, /bin/bash, predstavlja zadanu ljusku (u ovom slučaju, Bash).

Da biste promijenili vrijednost polja ljuske u željenu ljusku, jednostavno navedite putanju do ljuske (/bin/zsh) kao što je prikazano.

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

Kada završite sa uređivanjem, sačuvajte i zatvorite datoteku.

Kako instalirati drugu školjku?

Slično drugim softverskim paketima, popularne ljuske kao što su Zsh i Fish mogu se lako instalirati iz spremišta vaše distribucije kao što je prikazano.

Instalirajte Zsh Shell u Linux

Da instalirate Zsh na Linux, koristite sljedeću odgovarajuću naredbu za vašu specifičnu distribuciju Linuxa.

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]    

Instalirajte Fish Shell u Linux

Da instalirate Zsh na Linux, koristite sljedeću odgovarajuću naredbu za vašu specifičnu distribuciju Linuxa.

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 zaboravite pročitati ove povezane teme:

U ovom članku opisali smo različite načine promjene korisničke ljuske u Linuxu. Da podijelite bilo kakve misli s nama, koristite odjeljak za komentare ispod.