Смена оболочки в Ubuntu: руководство по утилите chsh

Введение

В операционных системах семейства Linux каждый пользователь взаимодействует с терминалом через определенный командный интерпретатор (shell). В данном руководстве подробно разбирается утилита chsh (change shell), позволяющая безопасно переключать стандартную оболочку для учетной записи. Мы наглядно проследим, как эта утилита взаимодействует с системными конфигурациями /etc/shells и базой учетных записей /etc/passwd.

Проверка активного командного интерпретатора и доступных оболочек

Чтобы узнать, какой интерпретатор команд назначен текущей сессии в качестве базового, обратимся к переменной окружения с помощью echo $SHELL.
Терминал выводит /bin/bash, подтверждая, что в данный момент аккаунт использует стандартный Bourne Again Shell.

Определение текущей оболочки

Операционная система в целях безопасности не позволяет назначать произвольные исполняемые файлы в качестве оболочки входа. Список официально разрешенных интерпретаторов хранится в файле /etc/shells. Просмотрим его содержимое: cat /etc/shells.
В полученном выводе перечислены легитимные пути, такие как /bin/sh и /bin/bash, которые система считает доверенными для назначения пользователям.

Просмотр разрешенных оболочек в /etc/shells

Инсталляция zsh и верификация путей к исполняемым файлам

В качестве альтернативной оболочки для демонстрации смены воспользуемся популярным zsh. Установим пакет из репозитория, выполнив связку: sudo apt-get update -qq && sudo apt-get install -y zsh.

Установка пакета zsh

После успешного развертывания определим точное расположение скомпилированного бинарника в файловой иерархии командой which zsh.
Ответ системы указывает на абсолютный путь /usr/bin/zsh.

Поиск абсолютного пути к zsh

Утилита управления оболочками потребует, чтобы новый интерпретатор присутствовал в перечне доверенных. Убедимся, что пакетный менеджер автоматически добавил zsh в системный реестр: grep -E 'bash|zsh' /etc/shells.
Наличие записей /bin/zsh и /usr/bin/zsh в списке свидетельствует о том, что путь успешно зарегистрирован и готов для назначения в chsh.

Фильтрация доступных интерпретаторов через grep

Переключение оболочки по умолчанию с помощью утилиты chsh

Перед внесением изменений уточним имя текущего пользователя операционной системы с помощью id -un.
Как видно из ответа, все операции выполняются под учетной записью суперпользователя root.

Проверка имени текущего пользователя

Для смены стандартной командной среды передадим флаг -s вместе с результатом подстановки команды: chsh -s $(which zsh).
Отсутствие предупреждений и завершение команды с кодом 0 подтверждают, что путь /usr/bin/zsh успешно принят системой.

Смена оболочки по умолчанию на zsh

Фактическое назначение оболочки в Linux фиксируется в последней колонке файла учетных записей. Выполним проверку строки пользователя: grep "^$(whoami):" /etc/passwd.
Седьмое поле записи обновилось на /usr/bin/zsh, что подтверждает корректную фиксацию новой конфигурации на уровне системы.

Контроль изменений в конфигурации /etc/passwd

Механизм работы chsh и откат к исходной оболочке

Для возврата окружения в исходное состояние применим ту же команду, указав путь к Bash: chsh -s /bin/bash.
Команда отрабатывает штатно и без сообщений об ошибках, восстанавливая привычный интерпретатор /bin/bash.

Откат настроек оболочки к bash

Убедимся в возврате исходных параметров в файле пользователей повторным вызовом: grep "^$(whoami):" /etc/passwd.
Завершающее поле вновь содержит /bin/bash — профиль учетной записи приведен в первоначальный вид.

Верификация возврата bash в /etc/passwd

Мы рассмотрели практический процесс смены оболочки входа в Ubuntu и разобрали логику работы команды chsh вместе с файлами конфигурации.
Грамотный выбор и безопасная настройка командного интерпретатора позволяют выстроить максимально продуктивное и комфортное рабочее окружение в Linux.