3 måder at ændre en brugers standard shell i Linux


I denne artikel vil vi beskrive, hvordan du ændrer en brugers shell i Linux. Skallen er et program, der accepterer og fortolker kommandoer; der er flere skaller som bash, sh, ksh, zsh, fisk og mange andre mindre kendte skaller tilgængelige på Linux.

Bash (/ bin/bash) er en populær shell på de fleste, hvis ikke alle Linux-systemer, og det er normalt standard shell for brugerkonti.

Der er flere grunde til at ændre en brugers shell i Linux, herunder følgende:

  1. For at blokere eller deaktivere normale brugerlogins i Linux ved hjælp af en nologin-shell.
  2. Brug et shell-wrapper-script eller -program til at logge på brugerkommandoer, før de sendes til en shell til udførelse. Her angiver du shellindpakningen som en brugers login-shell.
  3. For at imødekomme en brugers krav (ønsker at bruge en bestemt shell), især dem med administrative rettigheder.

Når du opretter brugerkonti med brugeradd eller adduser-hjælpeprogrammer, kan flagget --shell bruges til at specificere navnet på en brugers login-shell, der ikke er angivet i de respektive konfigurationsfiler.

En login-shell kan tilgås fra en tekstbaseret grænseflade eller via en SSH fra en fjern Linux-maskine. Men hvis du logger ind via en grafisk brugergrænseflade (GUI), kan du få adgang til skallen fra en terminalemulatorer som xterm, konsole og mange flere.

Lad os først liste alle tilgængelige skaller på dit Linux-system, skriv.

# cat /etc/shells

/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/dash

Før du fortsætter, skal du være opmærksom på, at:

  • En bruger kan ændre sin egen shell til en hvilken som helst ting: som dog skal være opført i filen/etc/shells.
  • Kun root kan køre en shell, der ikke er angivet i filen/etc/shells.
  • Hvis en konto har en begrænset login-shell, kan kun root ændre brugerens shell.

Lad os nu diskutere tre forskellige måder at ændre Linux-bruger shell.

1. usermod Utility

usermod er et værktøj til at ændre en brugers kontooplysninger, der er gemt i/etc/passwd-filen og indstillingen -s eller --shell bruges til at ændre brugerens login shell .

I dette eksempel kontrollerer vi først bruger tecmints kontooplysninger for at se hans standard login shell og derefter ændre sin login shell fra/bin/sh til/bin/bash som følger.

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

2. chsh Utility

chsh er et kommandolinjeværktøj til at ændre en login-shell med -s eller –shell-indstillingen som denne.

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

De to metoder frem for alt ændrer den shell, der er angivet i/etc/passwd-filen, som du kan redigere manuelt som i den tredje metode nedenfor.

3. Skift User Shell i/etc/passwd File

I denne metode skal du blot åbne filen/etc/passwd ved hjælp af en af dine foretrukne kommandolinjeditorer og ændre en bestemt brugerskal.

# vi /etc/passwd

Når du er færdig med at redigere, skal du gemme og lukke filen.

Glem ikke at læse disse relaterede emner:

  1. Forståelse af shell-initialiseringsfiler og brugerprofiler i Linux
  2. Forstå Linux Shell og Basic Shell Scripting Tips - Del I
  3. Sådan skriver og bruger du brugerdefinerede shell-funktioner og biblioteker
  4. Forståelse af forskellige klassifikationer af Shell-kommandoer og deres anvendelse

I denne artikel beskrev vi forskellige måder at ændre en brugers shell i Linux på. Brug kommentarsektionen nedenfor for at dele eventuelle tanker med os.