25

У меня есть сервер Debian. Когда я вхожу через ssh, меня приветствует окружение sh. Как я могу изменить это, чтобы я начал в среде bash?

5 ответов5

30

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

chsh -s /bin/bash

Другой вариант - использовать usermod от имени пользователя root:

usermod -s /bin/bash username
5

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

В качестве альтернативы, вы можете изменить системное значение по умолчанию /bin/sh не являясь bash.

2

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

usermod -s /bin/bash joeuser
1

Если вы пытаетесь использовать общую учетную запись (по какой-либо причине) и не можете изменить оболочку по умолчанию, вы можете запустить

ssh -t <user@hostname> bash -l

Если вам нужно защитить свою среду от какой-либо другой оболочки, то сначала вы можете запустить ее; например

ssh -t <user@hostname> ksh -c bash -l
1

Системная оболочка по умолчанию /bin/sh в последних выпусках Ubuntu настроена на /bin/dash . Просто запустив следующую команду:

sudo dpkg-reconfigure dash

Вы можете изменить его обратно на старое значение по умолчанию /bin/bash .

При этом, вы можете достичь желаемого эффекта , имеющего bash как интерактивная оболочка без изменения каких - либо настроек пользователя (не chsh или usermod и она будет работать для всех пользователей , которые в настоящее время имеют оболочки установлены в /bin/sh

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

Кроме того, иногда раздражает вид сценариев оболочки, которые не работают должным образом, потому что они используют некоторые расширенные функции bash которые не поддерживаются dash . Используя этот рецепт, вы убедитесь, что этого не произойдет.

Дополнительную информацию смотрите в вики Ubuntu об этой проблеме.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .