Change default shell: Difference between revisions

From Alpine Linux
(Created page with "==== Changing the default shell ==== Download the required package: ''apk add libuser'' If you do not have files: /etc/login.defs /etc/default/useradd We will need to creat...")
 
m (rephrased sentence. moved the note to front.)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
==== Changing the default shell ====
Alpine Linux uses the [[BusyBox]] variant of the [[BusyBox#Ash_shell|ash]] shell. This page explains various ways to change the default shell in Alpine Linux to other popular shells like {{Pkg|bash}}, {{Pkg|zsh}}, {{Pkg|fish}} etc.. You can revert back to '''ash shell''' at anytime with the same steps.


Download the required package:
{{Note|You need to log out and login again for these changes to take effect.}}
''apk add libuser''
 
== By hand ==
Edit {{Path|/etc/passwd}} manually. An example line for a user named <code>user</code> is:


If you do not have files:
{{Cat|/etc/passwd|...
/etc/login.defs
user:x:1000:1000:user:/home/user:/bin/ash
/etc/default/useradd
...
}}


We will need to create them
Change {{Path|/bin/ash}} to point to the path of a shell from {{Path|/etc/shells}}. Take care to not delete/mangle the line, as it would make you unable to log in again. The <code>user</code> should be the user you are changing the default login shell for.


touch /etc/login.defs
== Using shadow ==
touch /etc/default/useradd


Now we can change our default shell
Download the required package:
{{Cmd|# apk add shadow}}
And use chsh:
{{Cmd|# chsh username}}


If you want to change the current user's shell:
Now enter the path for the shell you want to use (e.g {{Path|/bin/bash}})
''lchsh''
and press {{Key|Enter}} to confirm this change. The shell should exist in {{Path|/etc/shells}}.


If you want to change a different user's shell:
[[Category:Shell]]
''lchsh USERNAME''
[[Category:System Administration]]

Latest revision as of 09:52, 22 October 2024

Alpine Linux uses the BusyBox variant of the ash shell. This page explains various ways to change the default shell in Alpine Linux to other popular shells like bash, zsh, fish etc.. You can revert back to ash shell at anytime with the same steps.

Note: You need to log out and login again for these changes to take effect.

By hand

Edit /etc/passwd manually. An example line for a user named user is:

Contents of /etc/passwd

... user:x:1000:1000:user:/home/user:/bin/ash ...

Change /bin/ash to point to the path of a shell from /etc/shells. Take care to not delete/mangle the line, as it would make you unable to log in again. The user should be the user you are changing the default login shell for.

Using shadow

Download the required package:

# apk add shadow

And use chsh:

# chsh username

Now enter the path for the shell you want to use (e.g /bin/bash) and press Enter to confirm this change. The shell should exist in /etc/shells.