Поиск по сайту:

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


Оболочка, или интерфейс командной строки, является важнейшим компонентом операционной системы Linux, предоставляющим пользователям мощный способ взаимодействия с системой.

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

Изменение оболочки пользователя по умолчанию может потребоваться по разным причинам, например, из-за личных предпочтений или необходимости использования определенных функций, предлагаемых другой оболочкой.

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

Оболочка Linux Bash

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

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

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

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

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

Список доступных оболочек в системе Linux

В Linux файл /etc/shells обычно используется для хранения списка установленных в системе действительных оболочек входа в систему. Этот файл помогает определить, какие оболочки доступны пользователям для установки в качестве оболочки по умолчанию с помощью таких команд, как chsh.

Чтобы просмотреть список доступных оболочек в системе Linux, вы можете использовать следующую команду:

cat /etc/shells

Пример вывода:

/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

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

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

Найдите текущую оболочку в Linux

Прежде чем менять оболочку пользователя по умолчанию, важно определить текущую оболочку, выполнив следующую команду echo, которая отображает текущую оболочку для вошедшего в систему пользователя.

echo $SHELL

/bin/bash

Вывод показывает, что пользователь в настоящее время использует оболочку Bash (/bin/bash).

Изменение оболочки по умолчанию в Linux

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

1. Утилита usermod

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

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

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

Теперь оболочка по умолчанию для пользователя «tecmint» будет изменена на bash.

2. Утилита chsh

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

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

Замените «/bin/sh» фактическим путем к оболочке, которую вы хотите установить. Например, чтобы установить оболочку sh, вы должны использовать «/bin/sh».

Важно отметить, что изменения в оболочке по умолчанию обычно вступают в силу при следующем входе в систему.

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

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

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

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

Найдите строку, соответствующую пользователю, для которого вы хотите изменить оболочку по умолчанию. Например, если строка выглядит так:

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

Последнее поле, /bin/bash, представляет оболочку по умолчанию (в данном случае Bash).

Чтобы изменить значение поля оболочки на желаемую оболочку, просто укажите путь к оболочке (/bin/zsh), как показано.

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

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

Как установить другую оболочку?

Как и другие пакеты программного обеспечения, популярные оболочки, такие как Zsh и Fish, можно легко установить из репозитория вашего дистрибутива, как показано.

Установите Zsh Shell в Linux

Чтобы установить Zsh в Linux, используйте следующую команду, соответствующую вашему дистрибутиву Linux.

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 в Linux

Чтобы установить Zsh в Linux, используйте следующую команду, соответствующую вашему дистрибутиву Linux.

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]    

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

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