Вопрос или проблема
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
. Надеюсь, данная инструкция поможет вам решить вашу задачу!