Самоучитель по команде chsh в Linux для начинающих (5 примеров)

Команда chsh (change shell) в Linux – это утилита, позволяющая пользователям изменять стандартную оболочку входа в систему. Оболочка входа – это интерфейс командной строки, с которым взаимодействуют пользователи при входе в Unix-подобную систему. К распространенным оболочкам относятся dash, bash, zsh, ksh и fish.

Прежде чем перейти к команде chsh, необходимо понять, что такое оболочка входа в систему. Оболочка входа – это первый процесс, который запускается под вашим идентификатором пользователя, когда вы входите в систему. Он отвечает за инициализацию вашего окружения и предоставляет интерфейс для взаимодействия с системой.

Распространенные оболочки Linux

  • Bash (Bourne Again Shell): Оболочка по умолчанию для многих дистрибутивов Linux, известная своей простотой в использовании и широкими возможностями.
  • Zsh (Z Shell): Расширенная версия bash с множеством дополнительных возможностей, таких как улучшенное завершение вкладок и настройка.
  • Ksh (Korn Shell): Оболочка, которая предлагает функции сценариев, найденные в sh и csh.
  • Fish (Friendly Interactive Shell): Известна своими удобными функциями, такими как подсветка синтаксиса и автосоветы.
  • Dash: Оболочка Linux Dash (dash) – это легковесная, POSIX-совместимая оболочка, разработанная для скорости и минимального использования ресурсов, часто используемая в качестве оболочки сценариев по умолчанию в системах на базе Debian.

Команда chsh в Linux

Как объясняется во введении выше, команда chsh позволяет изменить оболочку входа в систему. Ниже приведен ее синтаксис:

chsh [options] [LOGIN]

А вот что говорит о ней man-страница этого инструмента:

       The chsh command changes the user login shell. This determines the name
       of the user's initial login command. A normal user may only change the
       login shell for her own account; the superuser may change the login
       shell for any account.

Ниже приведено несколько примеров в стиле Q&A, которые должны дать вам представление о том, как работает команда chsh.

Q1. Как использовать команду chsh?

Базовое использование довольно простое – просто выполните команду ‘chsh’ без аргументов. Вас попросят ввести пароль для входа в систему, и после успешного ввода у вас появится возможность изменить оболочку для входа в систему.

chsh

Смена оболочки на bash в Ubuntu

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

Q2. Как изменить оболочку входа в систему с помощью chsh?

Как и следовало ожидать, просто введите новое значение (см. скриншот в предыдущем примере), и ваша оболочка будет изменена на новую.

Например, я ввел /bin/sh в качестве нового значения.

Как изменить оболочку входа в систему с помощью chsh

Чтобы проверить изменения, можно снова запустить команду chsh. Значение, указанное в квадратных скобках, – это текущая оболочка. В моем случае текущей оболочкой стала /bin/sh:

Установка новой оболочки для входа в систему

Q3. Как изменить оболочку входа для другого пользователя?

Для этого просто укажите имя пользователя в качестве входного параметра команды chsh.

chsh [username]

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

chsh root

Как изменить оболочку входа для другого пользователя

Q4. Как заставить chsh работать в неинтерактивном режиме?

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

Например:

chsh -s /bin/sh

Таким образом, оболочка входа для текущего пользователя будет изменена на /bin/sh неинтерактивным способом.

Q5. Как просмотреть список доступных оболочек входа в систему?

Чтобы быстро просмотреть список оболочек, доступных в вашей системе, просто откройте файл /etc/shells.

Например, вот вывод, полученный в моей системе:

# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash

Примечание:

       The only restriction placed on the login shell is that the command name
       must be listed in /etc/shells, unless the invoker is the superuser, and
       then any value may be added. An account with a restricted login shell
       may not change her login shell. For this reason, placing /bin/rsh in
       /etc/shells is discouraged since accidentally changing to a restricted
       shell would prevent the user from ever changing her login shell back to
       its original value.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *