4

Мне удалось сделать что-то катастрофически глупое и ниже уровня новичка.

Чистая установка на моем FreeBSD VPS, затем обновлена до версии 9.1 (с 9). По какой-то необычной причине, вместо того, чтобы сначала устанавливать экран, я установил bash через pkg.

Затем я изменил оболочку для моего пользователя и root. Теперь, когда я попытался снова войти в систему, используя обе учетные записи, и они являются единственными двумя учетными записями, я получаю странную ошибку, что мой google-fu не смог получить ответ. Я получаю "/usr/local/bin/bash: неопределенный символ" _ThreadRuneLocale "%" после ввода пароля и символа. Я загружен с сервера. Я пытался сделать то же самое через консоль.

Теперь, когда мне удалось заблокировать себя как для своей учетной записи, так и для пользователя root, я гадал, мне интересно, есть ли способ войти в систему с другой оболочкой, но обойти эту проблему.

Когда я пытаюсь ssh @ -i /bin /sh .. все равно не идет, это выдает мне точно такую же ошибку.

ТИА

2 ответа2

3

Это полноценная виртуальная машина или VBS FreeBSD? Если первый, ваш провайдер предлагает OOB-доступ к консоли виртуальной машины? Если это так, перезагрузите сервер в один пользователь , который использует /bin/sh по умолчанию, а оттуда вы можете установить корневую оболочку обратно в /bin/csh с использованием chsh или vipw , как вы предпочитаете.

Если ваш VPS является тюрьмой FreeBSD или у вас нет доступа к консоли OOB, вам нужно связаться со службой поддержки вашего провайдера и попросить его установить оболочку вашего пользователя root обратно в /bin/csh . Они должны быть в состоянии сделать это для вас с минимальной суетой.

Если вы действительно хотите использовать bash качестве корневой оболочки, используйте вместо этого пользователя-пользователя toor или root - он предназначен только для таких целей, поэтому вы можете создать удобную среду без риска для себя заблокировать. Тем не менее, я предпочитаю оставлять root точно таким, как есть, в качестве напоминания о том, что я работаю с повышенными привилегиями.

1

После входа в систему ssh всегда будет использовать настроенную оболочку, а затем использовать ее для запуска запрошенной вами программы. Для запуска вам потребуется другая подсистема. По умолчанию есть ssh и sftp, и вы можете попробовать добавить свои собственные в /etc/ssh/sshd_config:

Subsystem  binsh /bin/sh

(загрузив /etc/ssh/sshd_config с помощью sftp , изменив его, загрузив снова и перезагрузив компьютер каким-либо образом), а затем выберите его с помощью

ssh -s -l <account> <machine> binsh

Примечание: непроверенный, то есть, если он сломается, вы сохраните фигуры.

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