Linux user set bash

How do you change the default shell for ALL USERS to bash?

I want every new user from now on to have bash as their shell by default. I know that to change your own shell to bash, you would use the command «chsh -s /bin/bash», but how do I automatically set all future users’ shell to bash by default?

3 Answers 3

The adduser defaults file is /etc/adduser.conf . The default shell defined by the DSHELL variable is /bin/bash by default.

Most likely you don’t need this because useradd is a very low-level utility, and it’s hardly ever used directly.

If you use useradd, edit the /etc/default/useradd skeleton file (don’t forget to make a backup though).

Set the SHELL variable to /bin/bash instead of /bin/sh .

Now every time you use useradd to add a new user bash is automatically their default shell.

Already existing users

If you want to change the shell of already existing users you have to edit the /etc/passwd file (please make sure to back have a backup of it).

Here is a description of the columns

  1. login name
  2. optional encrypted password
  3. numerical user ID
  4. numerical group ID
  5. user name or comment field
  6. user home directory
  7. optional user command interpreter

In that order separated by colons (:) like this.

For more information about that file consult the man page man 5 passwd .

Источник

3 Ways to Change a Users Default Shell in Linux

In this article, we will describe how to change a user’s shell in Linux. The shell is a program that accepts and interprets commands; there are several shells such as bash, sh, ksh, zsh, fish and many other lesser known shells available on Linux.

Bash (/bin/bash) is a popular shell on most if not all Linux systems, and it’s normally the default shell for user accounts.

There are several reasons for changing a user’s shell in Linux including the following:

  1. To block or disable normal user logins in Linux using a nologin shell.
  2. Use a shell wrapper script or program to login user commands before they are sent to a shell for execution. Here, you specify the shell wrapper as a user’s login shell.
  3. To meet a user’s demands (wants to use a specific shell), especially those with administrative rights.

When creating user accounts with the useradd or adduser utilities, the —shell flag can be used to specify the name of a user’s login shell other than that specified in the respective configuration files.

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

Читайте также:  Install linux over windows

Let’s first list all available shells on your Linux system, type.

# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/dash

Before you proceed any further, note that:

  • A user can change their own shell to any thing: which, however must be listed in the /etc/shells file.
  • Only root can run a shell not listed in /etc/shells file.
  • If an account has a restricted login shell, then only root can change that user’s shell.

Now let’s discuss three different ways to change Linux user shell.

1. usermod Utility

usermod is a utility for modifying a user’s account details, stored in the /etc/passwd file and the -s or —shell option is used to change the user’s login shell.

In this example, we’ll first check user tecmint’s account information to view his default login shell and then change its login shell from /bin/sh to /bin/bash as follows.

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

Change User Shell using Usermod

2. chsh Utility

chsh is a command line utility for changing a login shell with the -s or –shell option like this.

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

Change User Shell Using chsh

The two methods above all modify the shell specified in /etc/passwd file which you can edit manually as in the third method below.

3. Change User Shell in /etc/passwd File

In this method, simply open the /etc/passwd file using any of your favorite command line text editors and change a specific users shell.

Change User Shell in Passwd File

When your done editing, save and close the file.

Do not forget to read these related topics:

In this article, we described various ways of changing a user’s shell in Linux. To share any thoughts with us, use the comment section below.

Источник

3 способа изменить оболочку пользователя по умолчанию в Linux

В этой статье мы расскажем, как изменить оболочку пользователя в Linux. Оболочка — это программа, которая принимает и интерпретирует команды; есть несколько оболочек, таких как bash, sh, ksh, zsh, fish и многие другие менее известные оболочки, доступные в Linux.

Bash (/bin/bash) — это популярная оболочка в большинстве, если не во всех системах Linux, и обычно она используется по умолчанию для учетных записей пользователей.

Существует несколько причин для изменения пользовательской оболочки в Linux, включая следующие:

  1. Чтобы заблокировать или отключить обычный вход пользователей в Linux с помощью оболочки nologin.
  2. Используйте сценарий или программу-оболочку оболочки для входа в пользовательские команды перед их отправкой в оболочку для выполнения. Здесь вы указываете оболочку оболочки в качестве оболочки входа пользователя.
  3. Для удовлетворения требований пользователя (желающего использовать определенную оболочку), особенно с правами администратора.

При создании учетных записей пользователей с помощью утилит useradd или adduser можно использовать флаг —shell для указания имени оболочки входа пользователя, отличного от указанного в соответствующих файлах конфигурации.

Доступ к оболочке входа можно получить из текстового интерфейса или через SSH с удаленного компьютера Linux. Однако, если вы входите в систему через графический интерфейс пользователя (GUI), вы можете получить доступ к оболочке из эмуляторов терминала, таких как xterm, konsole и многих других.

Читайте также:  Linux command to install app

Давайте сначала перечислим все доступные оболочки в вашей системе Linux, введите.

# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/dash

Прежде чем продолжить, обратите внимание, что:

  • Пользователь может изменить свою оболочку на любую вещь, которая, однако, должна быть указана в файле /etc/shells.
  • Только root может запускать оболочку, не указанную в файле /etc/shells.
  • Если учетная запись имеет ограниченную оболочку входа, только root может изменить оболочку этого пользователя.

Теперь давайте обсудим три разных способа изменить пользовательскую оболочку Linux.

1. Утилита usermod

usermod — это утилита для изменения данных учетной записи пользователя, хранящихся в файле /etc/passwd, а параметр -s или —shell используется для изменения оболочки входа пользователя.

В этом примере мы сначала проверим информацию об учетной записи пользователя tecmint, чтобы просмотреть его оболочку входа по умолчанию, а затем изменим ее оболочку входа с /bin/sh на /bin/bash как следует.

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

2. Утилита chsh

chsh — это утилита командной строки для изменения оболочки входа в систему с помощью параметра -s или -shell, подобного этому.

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

Два приведенных выше метода изменяют оболочку, указанную в файле /etc/passwd, который вы можете редактировать вручную, как в третьем методе ниже.

3. Измените оболочку пользователя в файле /etc/passwd.

В этом методе просто откройте файл /etc/passwd с помощью любого из ваших любимых текстовых редакторов командной строки и измените оболочку конкретного пользователя.

Когда закончите редактирование, сохраните и закройте файл.

Не забудьте прочитать эти связанные темы:

  1. Знакомство с файлами инициализации оболочки и профилями пользователей в Linux
  2. Понимание Linux Shell и советов по написанию сценариев Basic Shell — часть I
  3. Как писать и использовать собственные функции и библиотеки оболочки
  4. Знакомство с различными классификациями команд оболочки и их использованием

В этой статье мы описали различные способы смены оболочки пользователя в Linux. Чтобы поделиться с нами своими мыслями, используйте раздел комментариев ниже.

Источник

adojos / change-default-linux-Shell.md

Use one of the below listed methods to change your default shell.

You should already have more then one shell installed on your system in order to switch to another shell. Use the below commands to check the installed shells and current default shell on your system:

1. List all Installed Shells : cat /etc/shells 
2. Verify User’s Current Shell : echo $SHELL 
3. You can also check contents of '/etc/passwd' file to see default shell for user : cat /etc/passwd 

Method A : Using ‘chsh’ command (util-linux pkg)

The chsh command allows you to change your default shell. It allows you to change both the default login and default interactive shells. So be advised that using this command you would be changing both types of shell sessions.

You’re prompted for your password and returned to the command prompt of your current shell. You need to log out and back in for the change to take effect. You can use either -s or —shell option with the ‘chsh’ command, both works!

Читайте также:  Разделы linux manjaro при установке

A.1 : Changing logged-on User’s Shell

Here are the examples of ‘chsh’ with some variations:

1. chsh -s $(which zsh) This would change the default shell to 'ZSH'. The (which zsh) would auto populate the path to your zsh location. 
2. chsh --shell /bin/bash This would change the default shell to 'bash'. Here we are providing the path to 'bash' manually. 

A.2 : Change Other User’s Shell Using ’chsh’ (Root Privileges)

If you have root privileges and can use sudo, you can change the shells of other user accounts. The command is the same as before, with the addition of that person’s username added to the command line:

With this method you would change other user’s default shell one at a time hence if you are to change shell for a large number of users it may take some time unless you knock-up some automated script or way.

Method B : Using ‘usermod’ command

The ‘usermod’ is a command that modifies the system account files. The ‘usermod’ can change the shell of users by modifying file /etc/passwd. Hence you can also use ‘usermod’ utility for modifying a user’s account details stored in the /etc/passwd file. Once again you can use either -s or —shell option to change the user’s login shell.

usermod -s $(which zsh) This would change the default shell to 'ZSH'. The (which zsh) would auto populate the path to your zsh location. 
usermod --shell /bin/bash This would change the default shell to 'bash'. Here we are providing the path to 'bash' manually. 

Method C : Change User Shell in ‘/etc/passwd’ Manually (Root Privileges)

Another way to change user’s shell is by simply editing the /etc/passwd file using a suitable linux editor. The /etc/passwd file is a plain text file which stores user account information. A record contains the user’s account data, such as username, UID, GID, and home directory, among others. Generally the last field indicates the default shell of the user.

If we change the default shell field in the /etc/passwd file, it’ll take effect when the user logs on to the system next time.

  1. One advantage of editing the /etc/passwd file is that we can change the default shell of multiple users in one shot. Sometimes, this could be pretty convenient.
  2. However, we should keep in mind that when we save the /etc/passwd file, no validation or verification will happen on the changed default shells.

Method D : Change User Shell via Config Files (Dot Files)

Method D.1: Put the following in your .bashrc file —

if [ -t 1 ]; then exec zsh fi 

Method D.2 (Without Root Access): Put the following in your .bash_profile file —

export SHELL=/bin/zsh exec /bin/zsh -l 

Method D.3: Put the following in your .bash_profile file —

usermod -s $(which zsh) OR chsh -s $(which zsh) 

Источник

Оцените статью
Adblock
detector