У меня есть сервер Debian. Когда я вхожу через ssh, меня приветствует окружение sh. Как я могу изменить это, чтобы я начал в среде bash?
5 ответов
Как обычный пользователь, вы можете изменить оболочку входа по умолчанию, используя команду chsh
. Вот пример:
chsh -s /bin/bash
Другой вариант - использовать usermod от имени пользователя root:
usermod -s /bin/bash username
Вы редактируете /etc/passwd
где последняя запись является оболочкой по умолчанию. Сделать это /bin/bash
.
В качестве альтернативы, вы можете изменить системное значение по умолчанию /bin/sh
не являясь bash.
Вам нужно отредактировать свой профиль пользователя, вы можете сделать это напрямую, отредактировав файл /etc/passwd
, или вы можете использовать команду usermod
чтобы сделать это за вас. Синтаксис, который вы ищете, выглядит примерно так:
usermod -s /bin/bash joeuser
Если вы пытаетесь использовать общую учетную запись (по какой-либо причине) и не можете изменить оболочку по умолчанию, вы можете запустить
ssh -t <user@hostname> bash -l
Если вам нужно защитить свою среду от какой-либо другой оболочки, то сначала вы можете запустить ее; например
ssh -t <user@hostname> ksh -c bash -l
Системная оболочка по умолчанию /bin/sh
в последних выпусках Ubuntu настроена на /bin/dash
. Просто запустив следующую команду:
sudo dpkg-reconfigure dash
Вы можете изменить его обратно на старое значение по умолчанию /bin/bash
.
При этом, вы можете достичь желаемого эффекта , имеющего bash
как интерактивная оболочка без изменения каких - либо настроек пользователя (не chsh
или usermod
и она будет работать для всех пользователей , которые в настоящее время имеют оболочки установлены в /bin/sh
У этого есть только один маленький недостаток: время загрузки Ubuntu может немного увеличиться, потому что dash
требует меньше памяти для загрузки и немного быстрее для запуска (неудивительно - он настолько ограничен в функциях). Но я думаю, что измерить этот эффект будет довольно сложно, особенно для среды хостинга.
Кроме того, иногда раздражает вид сценариев оболочки, которые не работают должным образом, потому что они используют некоторые расширенные функции bash
которые не поддерживаются dash
. Используя этот рецепт, вы убедитесь, что этого не произойдет.
Дополнительную информацию смотрите в вики Ubuntu об этой проблеме.