У мене розміщений сервер Debian. Коли я входжу через ssh, мене вітає середовище sh. Як я можу це змінити, щоб я починався в баш-середовищі?
У мене розміщений сервер Debian. Коли я входжу через ssh, мене вітає середовище sh. Як я можу це змінити, щоб я починався в баш-середовищі?
Відповіді:
Як звичайний користувач, ви можете змінити стандартну оболонку для входу за допомогою chshкоманди. Ось приклад:
chsh -s /bin/bash
Інший варіант - використовувати usermod як root:
usermod -s /bin/bash username
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як свою оболонку всі ті роки на всіх машинах. Вам потрібен більш конкретний аргумент.
Системна оболонка /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 була їх оболонкою за замовчуванням.
zsh, а користувач до bashних він матиме його. Якщо користувачC налаштований sh, він матиме bash, який у поточному випадку Ubuntu за замовчуванням для нових користувачів все одно
dpkg-reconfigure zshвстановити zshяк / bin / sh, а потім dpkg-reconfigure dashвстановити dashяк / bin / sh, що є своєрідним тупиком; Я головним чином кажу, що бажано встановити оболонку входу на оболонку, яку хоче використовуватись, а не переживати обручі, щоб зробити / bin / sh гарною оболонкою для входу.
dpkg-reconfigure dashможе shвказувати bash, а не калічити dash. Всі інші снаряди залишатимуться цілими.
У випадку, коли ви намагаєтесь використовувати спільний обліковий запис (з будь-якої причини) і не можете змінити оболонку за замовчуванням, ви можете запустити
ssh -t <user@hostname> bash -l
Якщо вам потрібно зберегти своє оточення від якоїсь іншої оболонки, то спочатку можете запустити цю оболонку; наприклад
ssh -t <user@hostname> ksh -c bash -l
-lваріант?