Установить оболочку пользователю linux

Как сменить оболочку (shell) в Linux

Возможно, вы уже знаете, что в Linux и других Unix-подобных системах доступно несколько оболочек. Bash является оболочкой по умолчанию почти во всех дистрибутивах Linux, но есть и другие популярные оболочки, такие как:

Некоторые из оболочек предоставляют дополнительные функции для удобства пользователе. Возьмем, к примеру, оболочку Fish. Онf частично начинает показывать вам подсказки команд, основанные на вашей предыдущей набранной команде. Это очень удобно, если вы не хотите постоянно помнить ярлыки на терминале Linux.

Давайте посмотрим некоторые моменты оболочки системы Linux.

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

Чтобы узнать, какая оболочка по умолчанию установлена в конкретной системе, проверим переменную среды SHELL. Обычно оболочкой по умолчанию является bash, и она отображается так:

Как узнать, какая оболочку используется сейчас?

Не существует единого метода, который бы сообщал вам, какая оболочка используется в данный момент со 100%-ой точностью. Но можно попробовать либо echo $0, который показывает вывод, подобный этому:

либо проверить процесс, используя ps -p $$ следующим образом:

$ ps -p $$ PID TTY TIME CMD 9625 pts/0 00:00:00 zsh

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

Все оболочки, доступные в конкретной системе, перечислены в файле /etc/shells. Можно использовать команды cat или less для просмотра содержимого файла.

# /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash /usr/bin/tmux /usr/bin/fish /bin/zsh /usr/bin/zsh

Как сменить оболочку?

Если вы хотите использовать другую оболочку, вы можете просто ввести ее имя и войти в новую оболочку. Например, если вы хотите использовать Z Shell (zsh), вы можете использовать:

Чтобы выйти из новой оболочки и вернуться к предыдущей достаточно выполнить команду exit .

Как навсегда изменить оболочку по умолчанию в Linux?

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

Читайте также:  What is memory mapping in linux

Linux позволяет изменить оболочку по умолчанию с помощью команды chsh . Лучший способ изменить оболочку по умолчанию для вошедшего в систему пользователя — сменить имя оболочки, указанное в файле /etc/shells, с помощью опции -s.

Для того, чтобы изменения вступили в силу необходимо выйти из системы, иначе создастся ощущение, что запуск chsh не изменил оболочку.

Необходимо указывать полный путь к файлу /etc/shells? Если использовать chsh -s fish , то получим ошибку типа chsh: fish не является допустимой оболочкой .

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:
CC Attribution-Noncommercial-Share Alike 4.0 International

Источник

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

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

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

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

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

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

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

Давайте сначала перечислим все доступные оболочки в вашей системе Linux, введите.

# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/dash

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

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

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

1. Утилита usermod

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

Читайте также:  Linux cryptopro csp pfx

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

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

2. Утилита chsh

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

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

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

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

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

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

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

  1. Знакомство с файлами инициализации оболочки и профилями пользователей в Linux
  2. Понимание Linux Shell и советов по написанию сценариев Basic Shell — часть I
  3. Как писать и использовать собственные функции и библиотеки оболочки
  4. Знакомство с различными классификациями команд оболочки и их использованием

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

Источник

Как в Linux изменить login shell (оболочку входа в систему). Инструкция по команде chsh

Вход в систему обрабатывается оболочкой и другими инструментами, например, сам login или ваш диспетчер рабочего стола (с помощью PAM и различных других инструментов).

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

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

  • оболочка входа в систему обрабатывает команды из /etc/profile, затем первый файл, который она находит среди ~/.bash_profile, ~/.bash_login и ~/.profile (если только это не интерактивная оболочка входа, запущенная без параметра —login);
  • при выходе из оболочки входа выполняется logout вместо exit;
  • выход из оболочки входа в систему прерывает все задания;
  • оболочку входа нельзя приостановить;
  • оболочка входа устанавливает переменную HOME (кроме POSIX-корректного режима);
  • оболочка входа устанавливает параметр оболочки login_shell.
Читайте также:  Linux gre tunnel key

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

Как узнать, какие оболочки установлены в системе

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

Один из способов узнать правильные названия оболочек и пути до исполнимых файлов — это запустить следующую команду:

Но предыдущая команда срабатывает не на всех дистрибутивах (работает на Arch Linux, но не работает на производных Debian).

Поэтому можно воспользоваться универсальным методом — посмотреть содержимое файла /etc/shells:

В файле shells собраны пути к действующим оболочкам входа.

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

Имейте в виду, что есть программы, которые обращаются к этому файлу, чтобы узнать, является ли пользователь обычным пользователем; например, демоны FTP традиционно запрещают доступ пользователям с оболочками, не включёнными в этот файл.

Программа для смены оболочки пользователя — chsh

chsh — измените оболочку входа пользователя на постоянной основе.

Если вы временно хотите изменить шелл, то установите его и запустите. Примеры команд запуска различных оболочек:

chsh используется для изменения оболочки входа в систему. Если оболочка не указана в командной строке, chsh запрашивает её.

chsh поддерживает нелокальные записи (kerberos, LDAP и т.д.), если они связаны с libuser, в противном случае используйте ypchsh, lchsh или любую другую реализацию для нелокальных записей.

В качестве ОБОЛОЧКИ нужно указать одну из оболочек, как они перечислены в файле /etc/shells.

chsh примет полный путь к любому исполняемому файлу в системе.

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

Смена оболочки с помощью usermod

Утилита usermod с опцией -s меняет оболочку указанного пользователя.

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

sudo usermod -s /usr/sbin/nologin root

Чтобы назначить пользователю root оболочку Bash:

sudo usermod -s /usr/bin/bash root

Чтобы назначить пользователю root оболочку ZSH:

sudo usermod -s /usr/bin/zsh root

Источник

Оцените статью
Adblock
detector