usermod работал как шарм. Есть ли какой-нибудь способ установить по умолчанию bash при добавлении нового пользователя, или мне нужно каждый раз запускать команду?
Если вы используете adduser, он должен установить его на bash по умолчанию. По умолчанию настроено в /etc/adduser.conf. В противном случае укажите оболочку явно с useradd.
Иордания
5
Вы редактируете, /etc/passwdгде последняя запись является оболочкой по умолчанию. Сделай это /bin/bash.
Кроме того, вы можете изменить системное значение по умолчанию, чтобы /bin/shне быть bash.
Эй, что случилось с понижающим голосом? Например, Ubuntu по умолчанию /bin/shявляется /bin/dash. И для чего это стоит, два других ответа идентичны и достигают одного и того же результата разными способами. Без разницы.
Дирк Эддельбюттель
4
Ручное редактирование /etc/passwdкрайне не рекомендуется. Ошибка редактирования может привести к сбою имен входа для всех пользователей, для восстановления которых требуется носитель для восстановления или загрузка в однопользовательском режиме. Есть такие инструменты, как usermodдля изменения /etc/passwd.
Иордания
1
Ерунда. Запуск Linux с 94 года здесь. Никогда не обанкротился /etc/passwd.
Дирк Эддельбюттель
2
Рад слышать, что вы были очень осторожны. Не у всех есть. Еще одно примечание к вашему обновлению, запускаемое /bin/bashтак /bin/shже, как и его выполнение --posix, которое может привести к нежелательным результатам.
Иордания
Послушайте, я также являюсь разработчиком / сопровождающим Debian с 1995 года. Мы использовали bash по умолчанию, мы перешли на более простые оболочки по разным причинам. /bin/bashВсе эти годы я использовал в качестве оболочки все машины. Вам нужен более конкретный аргумент.
Дирк Эддельбюттель
2
Вам нужно отредактировать свой профиль пользователя, вы можете сделать это напрямую, отредактировав /etc/passwdфайл, или вы можете использовать usermodкоманду, чтобы сделать это за вас. Синтаксис, который вы ищете, выглядит примерно так:
Системная оболочка /bin/shпо умолчанию в последних выпусках Ubuntu настроена так /bin/dash. Просто запустив следующую команду:
sudo dpkg-reconfigure dash
Вы можете изменить его обратно на старый по умолчанию /bin/bash.
Благодаря этому вы можете добиться желаемого эффекта использования bashинтерактивной оболочки без изменения каких-либо пользовательских настроек (нет chshили usermod), и это будет работать для всех пользователей, для которых в данный момент установлена оболочка /bin/sh.
Есть только один маленький недостаток: время загрузки Ubuntu может немного увеличиться, потому что dashдля загрузки требуется меньше памяти и немного быстрее для запуска (неудивительно - она настолько ограничена в функциях). Но я думаю, что измерить этот эффект будет довольно сложно, особенно для среды хостинга.
Кроме того, иногда раздражает видеть сценарии оболочки, которые не работают должным образом, потому что они используют некоторые bashрасширенные функции, которые не поддерживаются dash. Используя этот рецепт, вы убедитесь, что этого не произойдет.
Для получения дополнительной информации см. Вики Ubuntu об этой проблеме .
вы должны хранить отдельные случаи использования: /bin/shиспользуется как интерпретатор для POSIX-совместимых сценариев оболочки - это не обязательно лучшая интерактивная оболочка; если вы хотите bashбыть системной оболочкой, вам следует установить предпочитаемую оболочку входа в систему, используя chshили соответствующие adduserвызовы. использование dpkg-reconfigure- плохой выбор, если userA хочет zsh, а userB хочет bash и оба настаивают на том, чтобы / bin / sh использовалась в качестве оболочки по умолчанию.
umläute
если userA явно настроен на zsh, и userB для bashних он будет иметь. Если userC настроен на sh, он будет иметь bash, что в любом случае является текущим значением по умолчанию Ubuntu для новых пользователей
mvp
конечно, но ваше решение предлагало dpkg-reconfigure zshустановить что-то вроде zsh/ bin / sh, а затем dpkg-reconfigure dashустановить dash/ bin / sh, что является своего рода тупиком; Я в основном говорю, что предпочтительно установить оболочку входа в систему в оболочку, которую вы хотите использовать, а не проходить через обручи, чтобы сделать / bin / sh хорошей оболочкой входа.
umläute
Я только сказал , что dpkg-reconfigure dashможет сделать shточку bash, а не калека dash. Все остальные снаряды останутся нетронутыми.
mvp
1
Если вы пытаетесь использовать общую учетную запись (по какой-либо причине) и не можете изменить оболочку по умолчанию, вы можете запустить
ssh -t <user@hostname> bash -l
Если вам нужно защитить свою среду от какой-либо другой оболочки, то вы можете сначала запустить эту оболочку; например
Ответы:
Как обычный пользователь, вы можете изменить оболочку входа по умолчанию, используя
chsh
команду. Вот пример:Другой вариант - использовать usermod от имени root:
источник
adduser
, он должен установить его на bash по умолчанию. По умолчанию настроено в/etc/adduser.conf
. В противном случае укажите оболочку явно сuseradd
.Вы редактируете,
/etc/passwd
где последняя запись является оболочкой по умолчанию. Сделай это/bin/bash
.Кроме того, вы можете изменить системное значение по умолчанию, чтобы
/bin/sh
не быть bash.источник
/bin/sh
является/bin/dash
. И для чего это стоит, два других ответа идентичны и достигают одного и того же результата разными способами. Без разницы./etc/passwd
крайне не рекомендуется. Ошибка редактирования может привести к сбою имен входа для всех пользователей, для восстановления которых требуется носитель для восстановления или загрузка в однопользовательском режиме. Есть такие инструменты, какusermod
для изменения/etc/passwd
./etc/passwd
./bin/bash
так/bin/sh
же, как и его выполнение--posix
, которое может привести к нежелательным результатам./bin/bash
Все эти годы я использовал в качестве оболочки все машины. Вам нужен более конкретный аргумент.Вам нужно отредактировать свой профиль пользователя, вы можете сделать это напрямую, отредактировав
/etc/passwd
файл, или вы можете использоватьusermod
команду, чтобы сделать это за вас. Синтаксис, который вы ищете, выглядит примерно так:источник
Системная оболочка
/bin/sh
по умолчанию в последних выпусках Ubuntu настроена так/bin/dash
. Просто запустив следующую команду:Вы можете изменить его обратно на старый по умолчанию
/bin/bash
.Благодаря этому вы можете добиться желаемого эффекта использования
bash
интерактивной оболочки без изменения каких-либо пользовательских настроек (нетchsh
илиusermod
), и это будет работать для всех пользователей, для которых в данный момент установлена оболочка/bin/sh
.Есть только один маленький недостаток: время загрузки Ubuntu может немного увеличиться, потому что
dash
для загрузки требуется меньше памяти и немного быстрее для запуска (неудивительно - она настолько ограничена в функциях). Но я думаю, что измерить этот эффект будет довольно сложно, особенно для среды хостинга.Кроме того, иногда раздражает видеть сценарии оболочки, которые не работают должным образом, потому что они используют некоторые
bash
расширенные функции, которые не поддерживаютсяdash
. Используя этот рецепт, вы убедитесь, что этого не произойдет.Для получения дополнительной информации см. Вики Ubuntu об этой проблеме .
источник
/bin/sh
используется как интерпретатор для POSIX-совместимых сценариев оболочки - это не обязательно лучшая интерактивная оболочка; если вы хотитеbash
быть системной оболочкой, вам следует установить предпочитаемую оболочку входа в систему, используяchsh
или соответствующиеadduser
вызовы. использованиеdpkg-reconfigure
- плохой выбор, если userA хочет zsh, а userB хочет bash и оба настаивают на том, чтобы / bin / sh использовалась в качестве оболочки по умолчанию.zsh
, и userB дляbash
них он будет иметь. Если userC настроен наsh
, он будет иметьbash
, что в любом случае является текущим значением по умолчанию Ubuntu для новых пользователейdpkg-reconfigure zsh
установить что-то вродеzsh
/ bin / sh, а затемdpkg-reconfigure dash
установитьdash
/ bin / sh, что является своего рода тупиком; Я в основном говорю, что предпочтительно установить оболочку входа в систему в оболочку, которую вы хотите использовать, а не проходить через обручи, чтобы сделать / bin / sh хорошей оболочкой входа.dpkg-reconfigure dash
может сделатьsh
точкуbash
, а не калекаdash
. Все остальные снаряды останутся нетронутыми.Если вы пытаетесь использовать общую учетную запись (по какой-либо причине) и не можете изменить оболочку по умолчанию, вы можете запустить
Если вам нужно защитить свою среду от какой-либо другой оболочки, то вы можете сначала запустить эту оболочку; например
источник
-l
вариант?Ни один из них
chsh
илиusermod
не работал на меня, но я обнаружил, что вы можете сделать это через PuTTY.Перейти к
Connection > SSH
и установитьRemote command
дляbash
.Обратите внимание, что вы не сможете использовать
exit
оболочку по умолчанию, она просто закроет соединение.источник