Изменить оболочку по умолчанию в Alpine Linux

Вопрос или проблема

Alpine по умолчанию использует ash в качестве оболочки входа, я хочу изменить её на bash.

Что я сделал до сих пор:

  • установил bash с помощью sudo apk add bash
  • установил shadow с помощью sudo apk add shadow
  • изменил оболочку входа моего пользователя на /bin/bash с помощью chsh
  • проверил, что /etc/passwd содержит /bin/bash в качестве оболочки входа по умолчанию для моего пользователя

но это, похоже, игнорируется. Когда я вхожу в систему (в консоли или по ssh), я всегда попадаю в оболочку ash.

Как вы входите в систему? У меня только что была похожая проблема, которая оказалась другого происхождения, но я проверил через docker exec с пользователем root, а затем выполнил su myuser, и оболочка – bash:

8a0deef473ac:/var/www$ echo $0
bash

Ответ или решение

Как изменить оболочку по умолчанию на Alpine Linux

Alpine Linux по умолчанию использует оболочку ash для входа в систему. Если вы хотите изменить оболочку на bash, выполните несколько шагов для правильной конфигурации. Давайте пройдемся по процессу, чтобы убедиться, что вы все сделали правильно.

1. Установка Bash

Вы уже правильно установили bash, выполнив команду:

sudo apk add bash

Это правильно. Убедитесь, что bash действительно установлен, проверив его версию:

bash --version

2. Установка Shadow

Вы также установили пакет shadow, чтобы иметь возможность изменять оболочку пользователя с помощью chsh. Эта команда позволяет вам изменить оболочку для своего пользователя. Убедитесь, что пакет установлен:

sudo apk add shadow

3. Изменение оболочки пользователя

С помощью команды chsh вы изменили свою оболочку на /bin/bash. Проверьте это с помощью команды:

chsh -s /bin/bash

Также вы проверили файл /etc/passwd и увидели, что ваша оболочка действительно была изменена. Это правильный шаг. Запись должна выглядеть примерно так:

myuser:x:1001:1001:,,,:/home/myuser:/bin/bash

4. Проверьте настройки SSH

Если вы все сделали правильно, но оболочка все еще не работает, это может быть связано с конфигурацией SSH. Проверьте файл конфигурации SSH, расположенный по адресу /etc/ssh/sshd_config, и убедитесь, что параметр ForceCommand не установлен, а также что PermitTTY не отключен.

  • Убедитесь, что ForceCommand не задан или закомментирован.
  • Убедитесь, что PermitTTY установлен в yes.

После внесения изменений, не забудьте перезапустить службу SSH:

sudo service sshd restart

5. Права пользователя

Иногда причины могут быть связаны с правами на домашнюю директорию пользователя. Убедитесь, что у вашего пользователя есть соответствующие разрешения для доступа к /bin/bash и его домашней папке.

6. Проверка конфигурации

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

echo $0

Ожидаемый результат должен быть bash. Если вы все еще видите ash, проверьте также файл .bashrc и другие конфигурационные файлы оболочки, чтобы убедиться, что они не содержат неправильных или конфликтующих настроек.

Заключение

Изменение оболочки по умолчанию в Alpine Linux на bash – это процесс, который требует нескольких шагов, включая установку необходимых пакетов, изменение конфигураций и проверку SSH. Если все шаги выполнены правильно, вы должны без труда использовать bash вместо ash. Надеюсь, данная инструкция поможет вам решить вашу задачу!

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

Капча загружается...