Вопрос или проблема
У меня есть инстанс, созданный в моей учетной записи AWS. Этот инстанс был создан с образом системы Ubuntu. Последовательность установки пакетов следующая: Java и MySQL. После установки MySQL я настраиваю UFW для порта 3306, чтобы связать Workbench Windows с MySQL на Ubuntu. Когда я вводлю команду “ufw enable”, UFW говорит, что SSH может быть заблокирован и спрашивает меня “да” или “нет”. После ответа “да” я теряю свою систему Ubuntu. Если я открываю другое соединение с моим IP-адресом, результат такой:
"Команда 'lesspipe' доступна в следующих местах
* /bin/lesspipe
* /usr/bin/lesspipe
Команда не может быть найдена, потому что '/bin:/usr/bin' не включен в переменную окружения PATH.
lesspipe: команда не найдена
Команда 'dircolors' доступна в следующих местах
* /bin/dircolors
* /usr/bin/dircolors
Команда не может быть найдена, потому что '/usr/bin:/bin' не включен в переменную окружения PATH.
dircolors: команда не найдена"
Но у меня нет доступа к какой-либо команде системы Ubuntu. У меня нет идей, как решить эту проблему. Спасибо и с наилучшими пожеланиями.
Это не похоже на проблему с UFW, это выглядит как проблема с вашей средой оболочки. У вас есть журнал сеанса терминала, где вы запускали ufw
, который показывает, что именно вы выполняли и что он говорил?
Ошибки, которые вы видите, означают, что переменная PATH
, которая говорит оболочке, где находить исполняемые файлы, либо не установлена, либо отсутствуют критически важные директории.
Я не уверен, как выполнение ufw
могло повлиять на вашу систему, но если вы сможете зайти и выполнить /bin/ufw reset
(как root), это отменит все изменения, которые вы внесли, и вернет все к настройкам по умолчанию. Однако если ваша среда не работает, это, вероятно, не поможет.
Вы говорите “я открываю другое соединение с моим IP-адресом”, но также “у меня нет доступа к какой-либо команде системы Ubuntu”. Это означает, что вы все еще можете подключиться к созданной вами ВМ, но, когда вы входите, получаете ошибку о ‘lesspipe’ и т.д.?
Если у вас есть командный промпт, когда вы вновь подключаетесь к ВМ, можете ли вы выполнить echo $PATH
? echo
– это встроенная команда в оболочке, поэтому для этого не требуется установка PATH.
Вот как должен выглядеть вывод (могут быть и другие директории, это просто набор по умолчанию):
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Если он ничего не печатает или печатает строку директорий, не содержащую /usr/bin
и /bin
, попробуйте выполнить это (первые два символа – точка и пробел) . /etc/environment
. Это не должно ничего печатать, но это установит PATH в вашей оболочке обратно к системному стандарту и позволит вам запускать вещи.
Если это сработало, вы можете запустить . ~/.bashrc
. Это также не будет ничего печатать, но должно правильно настроить вашу оболочку. Это не перманентно, вам нужно будет сделать это снова, если вы выйдете из оболочки и войдете снова, но это должно убрать немедленные ошибки, чтобы вы могли увидеть, что пошло не так и вызвало их.
Ответ или решение
Конечно! Чтобы решить вашу проблему с UFW на вашем сервере Ubuntu и восстановить доступ к системе, выполните следующие шаги:
-
Подключение к вашему серверу:
Если вы по-прежнему можете подключаться к вашему серверу по SSH, это хорошо. Если вы не можете подключиться, вы можете воспользоваться консолью управления AWS (например, через EC2). -
Проверка переменной PATH:
После подключения к серверу введите следующую команду, чтобы проверить значение переменнойPATH
:echo $PATH
Вы должны увидеть что-то подобное:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Если переменная
PATH
пуста или не содержит/usr/bin
и/bin
, это объясняет ваши ошибки в оболочке. -
Восстановление переменной PATH:
Чтобы временно восстановить переменнуюPATH
, выполните следующую команду:. /etc/environment
Это установит
PATH
в значения по умолчанию. После этого попробуйте снова ввестиecho $PATH
, чтобы убедиться, что переменная была установлена правильно. -
Восстановление конфигурации UFW:
Если вы хотите сбросить настройки UFW, выполните команду:sudo ufw reset
Это вернет UFW к его начальному состоянию. После этого вы можете снова включить UFW, добавив необходимые правила.
Например, чтобы разрешить соединения по SSH, выполните:
sudo ufw allow ssh
И затем откройте порт 3306 для MySQL:
sudo ufw allow 3306
-
Включение UFW:
После настройки правил включите UFW:sudo ufw enable
Если система уведомит вас, что вы можете потерять соединение, убедитесь, что вы разрешили доступ SSH перед его включением.
-
Проверка состояния UFW:
После выполнения всех изменений проверьте состояние UFW:sudo ufw status
Вы должны увидеть список разрешенных правил.
-
Восстановление .bashrc:
Если вы продолжаете испытывать проблемы после выполнения указанных шагов, можно также попытаться восстановить настройки вашего.bashrc
файла, если он был поврежден. Для этого выполните:cp ~/.bashrc ~/.bashrc.bak nano ~/.bashrc
Убедитесь, что там есть строки, относящиеся к настройкам
PATH
, и добавьте нужные директории, если они отсутствуют. Затем примените изменения:. ~/.bashrc
Если вы все еще сталкиваетесь с проблемами:
Если после всех этих шагов вам все равно не удаётся получить доступ к системе, возможно, будет разумно запускать «перезагрузку» (reboot) экземпляра в AWS или восстановить его из резервной копии, если такая доступна.
Мы надеемся, что эти шаги помогут вам восстановить доступ к вашей системе и правильно настроить UFW. Если у вас возникнут другие вопросы, не стесняйтесь задавать их.