Оболочка, или командный интерфейс, является важным компонентом операционной системы Linux, предоставляя пользователям мощный способ взаимодействия с системой.
Каждому пользователю в системе Linux назначается основная оболочка, которая определяет интерпретатор команд, используемый им при взаимодействии с системой.
Изменение основной оболочки пользователя может быть необходимым по различным причинам, таким как личные предпочтения или необходимость в определенных функциях, предлагаемых другой оболочкой.
В этой статье мы рассмотрим процесс изменения основной оболочки пользователя в Linux. Оболочка – это программа, которая принимает и интерпретирует команды; существует несколько оболочек с открытым исходным кодом, таких как bash, sh, ksh, zsh, fish, и множество других менее известных оболочек, доступных в Linux.
Оболочка Linux Bash
Bash (/bin/bash) является популярной оболочкой на большинстве, если не на всех дистрибутивах Linux, и обычно является основной оболочкой для учетных записей пользователей.
Существует несколько причин для изменения оболочки пользователя в Linux, включая следующие:
- Чтобы блокировать или отключить обычные входы пользователей в Linux с использованием оболочки nologin.
- Используйте оболочку-обертку или программу для регистрации команд пользователей перед тем, как они будут отправлены в оболочку для выполнения. Здесь вы указываете оболочку-обертку как оболочку входа пользователя.
- Чтобы удовлетворить запросы пользователя (хочет использовать определенную оболочку), особенно тех, у кого есть административные права.
При создании учетных записей пользователей с помощью утилит useradd или adduser, флаг --shell
может использоваться для указания имени оболочки входа пользователя, отличной от указанной в соответствующих конфигурационных файлах.
A login shell can be accessed from a text-based interface or via an SSH from a remote Linux machine. However, if you log in via a graphical user interface (GUI), you can access the shell from terminal emulators like xterm, konsole, and many more.
Список доступных оболочек в системе 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
Прежде чем продолжить, обратите внимание, что:
- A user can change their own shell to anything: which, however, must be listed in the /etc/shells file.
- Только 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 в 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. Чтобы поделиться любыми мыслями с нами, используйте раздел комментариев ниже.
Source:
https://www.tecmint.com/change-a-users-default-shell-in-linux/