Вопрос или проблема
Это уже второй раз, когда я сталкиваюсь с этой ошибкой, и я пытаюсь понять, почему она возникла. Мое устройство было скомпрометировано, как предполагается здесь?
Я использую Ubuntu 22.04
Шаги, предпринятые перед ошибкой:
sudo chmod 600 configfile.yaml (из папки /etc/netplan/)
sudo configfile.yaml (закомментировал неуместную строку, ctrl-x, да, сохранил файл)
Когда я попытался применить свои изменения…
(base) user@device:/etc/netplan$ sudo netplan apply
-bash: /usr/bin/sudo: нет такого файла или каталога
(base) user@device: cd /usr/bin
(base) user@device: ls
-bash: /usr/bin/ls: нет такого файла или каталога
Вдруг почти каждая команда перестала работать. Хотя /usr/bin все еще существовал, многие команды отсутствовали.
Моя переменная пути казалась в порядке…
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Но я не мог ничего сделать. Я попытался перезагрузить, но не удалось найти init-файл в каких-либо папках, загрузка до ‘initramfs’
run-init: не удалось выполнить '/sbin/init': нет такого файла или каталога
Я не знаю, в чем была проблема, но многие файлы в ‘root/sbin, root/bin, root/lib’ полностью отсутствовали.
Копирование этих папок с чистой установки решило проблему, позволив мне снова загрузиться, но я пытаюсь понять, почему возникла эта проблема, как я могу предотвратить ее повторное возникновение и был ли мой устройство с рутом в результате каких-то открытых портов.
Если это полезно…
В первый раз, когда это произошло, я попытался запустить этот файл sudo sh ./script.sh
.
grep /etc/netplan/configfile.yaml >> output.txt
grep /etc/hostapd/configfile.conf
ip a show wlan0 >> output.txt
echo "Text..." >> output.txt
systemctl enable netplan >> output.txt # Позже я понял, что это не работает, хотя не уверен, могло ли это вызвать проблему
Я считаю, что проблема заключалась в отсутствии ‘>> output.txt’ в grep. Он завис, ожидая бесконечно, поэтому я нажал ctrl-x, но предыдущие проблемы возникли снова.
Ответ или решение
Ошибка «/usr/bin/sudo: no such file or directory, can’t find init, booting to initramfs»: Возможные причины и решения
Вы столкнулись с серьезной проблемой на вашем устройстве под управлением Ubuntu 22.04, которая приводит к загрузке в режим initramfs
. Ошибка указывает на отсутствие критически важных файлов и исполняемых команд, что затрудняет дальнейшую работу с системой. Давайте разберемся, что произошло, какие могли быть причины возникновения данной проблемы, и как предотвратить ее повторное появление.
Описание проблемы
На момент возникновения ошибки вы пытались изменить конфигурационный файл для Netplan с помощью команды:
sudo chmod 600 configfile.yaml
Следующий вызов:
sudo netplan apply
привел к тому, что система не смогла найти команду sudo
и другие основные команды в /usr/bin
, при этом сам каталог /usr/bin
существовал, но содержимое его было частично отсутствующим. Результат выполнения команды ls
также подтверждал отсутствие необходимых исполняемых файлов.
После перезагрузки система не смогла найти файл init
, что привело к загрузке в initramfs
, что указывает на серьезные проблемы с файловой системой.
Возможные причины
-
Повреждение файловой системы: Причиной может быть повреждение файловой системы в результате частых отключений питания, неправильного завершения работы системы или аппаратных сбоев.
-
Ошибка в скрипте: Вы упомянули, что перед этой проблемой запускали
sudo sh ./script.sh
, и если в этом скрипте была ошибка, это могло привести к частичному удалению или повреждению системных файлов. Особенно это касается того факта, что использование>> output.txt
было пропущено, что могло привести к бесконечному ожиданию и прерыванию выполнения сценария. -
Человеческая ошибка: Неправильное редактирование файлов или команд может было привести к случайному удалению или переименованию критически важных системных файлов.
-
Малварь или вторжение: Хотя вероятность этого случая менее вероятна, нельзя полностью исключать возможность, что ваше устройство могло быть скомпрометировано, учитывая отсутствие файлов в
/sbin
,/bin
, и/lib
.
Рекомендации по предотвращению
-
Создание резервных копий: Регулярно создавайте резервные копии важных конфигурационных и системных файлов. Это может помочь восстановить систему в случае сбоев.
-
Мониторинг состояния системы: Используйте инструменты для мониторинга состояния файловой системы, такие как
fsck
, для регулярной проверки и исправления ошибок. -
Отладка скриптов: Перед выполнением новых скриптов проверяйте их на наличие ошибок. Используйте режим «тестирования» или «ошибки» для их отладки.
-
Безопасность системы: Убедитесь, что ваш фаервол и антивирусные программы активны и обновлены. Это поможет защитить устройство от внешних угроз.
-
Изучение логов: Анализируйте системные журналы (
/var/log/syslog
,/var/log/auth.log
) для выявления подозрительных действий, которые могли бы указывать на компрометацию.
Заключение
Хотя вы смогли восстановить работоспособность своей системы копированием недостающих файлов с чистой установки, важно разобраться в корне проблемы, чтобы избежать повторения. Неправильное обращение с системными файлам и случайное удаление критических компонентов могут привести к серьезным последствиям. Следуя приведенным рекомендациям, вы сможете значительно снизить риск возникновения подобной ошибки и защитить свою систему от внешних угроз.