Как изменить оболочку пользователя по умолчанию в 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. Чтобы поделиться с нами своими мыслями, используйте раздел комментариев ниже.