3 Manieren om de Standaard Shell van een Gebruiker te Wijzigen in Linux

De shell, of command-line interface, is een cruciaal onderdeel van het Linux-besturingssysteem, waarmee gebruikers op een krachtige manier kunnen communiceren met het systeem.

Elke gebruiker op een Linux-systeem is gekoppeld aan een standaardshell, die bepaalt welke commando-interpreter ze gebruiken bij de interactie met het systeem.

Het wijzigen van de standaardshell van een gebruiker kan noodzakelijk zijn om verschillende redenen, zoals persoonlijke voorkeur of de behoefte aan specifieke functies die worden aangeboden door een andere shell.

In dit artikel zullen we het proces van het wijzigen van de standaardshell van een gebruiker in Linux verkennen. De shell is een programma dat opdrachten accepteert en interpreteert; er zijn verschillende open-source shells zoals bash, sh, ksh, zsh, fish, en vele andere minder bekende shells beschikbaar op Linux.

Linux Bash Shell

Bash (/bin/bash) is een populaire shell op de meeste, zo niet alle Linux-distributies, en het is normaal gesproken de standaardshell voor gebruikersaccounts.

Er zijn verschillende redenen om een gebruikersshell in Linux te wijzigen, waaronder de volgende:

  • Om normale gebruikersaanmeldingen te blokkeren of uit te schakelen in Linux met behulp van een nologin-shell.
  • Gebruik een shellwrapper-script of -programma om gebruikersopdrachten te loggen voordat ze naar een shell worden verzonden voor uitvoering. Hier specificeer je de shellwrapper als de inlogshell van een gebruiker.
  • Om aan de eisen van een gebruiker te voldoen (die een specifieke shell wil gebruiken), vooral die met beheerdersrechten.

Bij het aanmaken van gebruikersaccounts met de useradd of adduser hulpprogramma’s, kan de --shell vlag worden gebruikt om de naam van de inlogshell van een gebruiker te specificeren die verschilt van die welke is gespecificeerd in de respectieve configuratiebestanden.

A login shell can be accessed from a text-based interface or via an SSH from a remote Linux machine. However, if you log in via a graphical user interface (GUI), you can access the shell from terminal emulators like xterm, konsole, and many more.

Lijst met beschikbare shells op een Linux-systeem

In Linux wordt het bestand /etc/shells vaak gebruikt om een lijst van geïnstalleerde geldige inlogshells op het systeem op te slaan. Dit bestand helpt bij het identificeren van welke shells beschikbaar zijn voor gebruikers om in te stellen als hun standaardshell met behulp van commando’s zoals chsh.

Om de lijst met beschikbare shells op een Linux-systeem te bekijken, kunt u het volgende commando gebruiken:

cat /etc/shells

Voorbeelduitvoer:

# /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

Voordat u verdergaat, let op:

  • A user can change their own shell to anything: which, however, must be listed in the /etc/shells file.
  • Alleen root kan een shell uitvoeren die niet in het /etc/shells bestand staat vermeld.
  • Als een account een beperkte inlogshell heeft, kan alleen de root de shell van die gebruiker wijzigen.

Zoek de huidige shell in Linux

Voor het wijzigen van de standaard shell van een gebruiker is het belangrijk om eerst de huidige shell te bepalen door het volgende echo commando uit te voeren, dat de huidige shell voor de ingelogde gebruiker weergeeft.

echo $SHELL

/bin/bash

De uitvoer toont aan dat de gebruiker momenteel de Bash (/bin/bash) shell gebruikt.

Het wijzigen van de standaard shell in Linux

Laten we nu drie verschillende manieren bespreken om de standaard Linux-gebruikersshell te wijzigen.

1. usermod Hulpprogramma

Het usermod commando wordt gebruikt om de accountgegevens van een gebruiker te wijzigen, opgeslagen in het /etc/passwd bestand, en de -s of --shell optie wordt gebruikt om de inlogshell van de gebruiker te wijzigen.

In dit voorbeeld controleren we eerst de accountgegevens van gebruiker tecmint om zijn standaard inlogshell te bekijken en vervolgens wijzigen we zijn inlogshell van /bin/sh naar /bin/bash als volgt.

grep tecmint /etc/passwd
sudo usermod --shell /bin/bash tecmint
grep tecmint /etc/passwd
Change User Shell using Usermod

Nu zal de standaard shell voor de gebruiker “tecmint” worden gewijzigd naar bash.

2. chsh Hulpprogramma

Het chsh commando wordt gebruikt om interactief de standaard inlogshell van de gebruiker te wijzigen door gebruik te maken van de -s of –shell optie zoals getoond.

grep tecmint /etc/passwd
sudo chsh --shell /bin/sh tecmint
grep tecmint /etc/passwd
Change User Shell Using chsh

Vervang “/bin/sh” door het werkelijke pad naar de shell die je wilt instellen. Bijvoorbeeld, om de shell in te stellen op sh, zou je ” /bin/sh ” gebruiken.

Het is belangrijk op te merken dat wijzigingen in de standaard shell meestal van kracht worden bij uw volgende aanmelding.

De twee bovenstaande methoden wijzigen allemaal de shell zoals gespecificeerd in het /etc/passwd bestand, dat u handmatig kunt bewerken zoals in de derde methode hieronder.

3. Gebruikersshell wijzigen in /etc/passwd bestand

In deze methode opent u eenvoudigweg het /etc/passwd bestand met behulp van een van uw favoriete opdrachtregel teksteditors en wijzigt u de shell van een specifieke gebruiker.

sudo vi /etc/passwd
OR
sudo nano /etc/passwd
Change User Shell in Passwd File

Zoek de regel die overeenkomt met de gebruiker voor wie u de standaard shell wilt wijzigen. Als de regel er bijvoorbeeld uitziet als volgt:

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

Het laatste veld, /bin/bash, vertegenwoordigt de standaard shell (in dit geval Bash).

Om de waarde van het shell-veld te wijzigen naar de gewenste shell, geeft u eenvoudigweg het pad naar een shell (/bin/zsh) op zoals getoond.

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

Wanneer u klaar bent met bewerken, slaat u het bestand op en sluit u het.

Hoe installeert u een andere shell?

Vergelijkbaar met andere softwarepakketten, kunnen populaire shells zoals Zsh en Fish eenvoudig worden geïnstalleerd vanuit het repository van uw distributie zoals getoond.

Zsh-shell installeren in Linux

Om Zsh te installeren op Linux, gebruikt u de volgende juiste opdracht voor uw specifieke Linux distributie.

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]    

Fish-shell installeren in Linux

Om Zsh te installeren op Linux, gebruikt u de volgende juiste opdracht voor uw specifieke Linux distributie.

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]    

Hier zijn de gerelateerde onderwerpen die je zou kunnen interesseren:

In dit artikel beschreven we verschillende manieren om de shell van een gebruiker in Linux te wijzigen. Gebruik het opmerkingenveld hieronder om eventuele gedachten met ons te delen.

Source:
https://www.tecmint.com/change-a-users-default-shell-in-linux/