-1

Я знаю, что это огромная проблема безопасности и т.д., Но я думаю, что это действительно странно, многие мои сервисы перестали работать (MySQL, SSH, Node) и, что наиболее важно, sudo, вероятно, другие, а также. Я не хочу переустанавливать весь сервер, и у меня также нет резервной копии Ubuntu. Меня не волнуют вопросы безопасности, я просто хочу снова запустить сервисы, особенно MySQL, так как в любом случае это тестовый сервер.

Почему chmod сделал эти сервисы недоступными? И как мне исправить хотя бы MySQL и sudo?

3 ответа3

2

Чтобы ответить на ваш вопрос "почему", ответ заключается в том, что для многих из этих двоичных файлов (особенно ssh и sudo) требуется установить бит setuid, и вы его очистили.

1

Хорошо написанные программы, которые ожидают установки с привилегированными разрешениями на выполнение, должны подтвердить, что они не были запущены в небезопасной конфигурации, чтобы предотвратить их использование в качестве средств для повреждения системы и не будут выполняться с неправильными разрешениями или владением. Обеспечение того, что это поведение является частью кода, является частью аудита безопасности, выполняемого во время выпуска многих крупных программных проектов, как с открытым, так и с закрытым исходным кодом.

1

Вот уродливый хак, который может заставить вас снова работать:

1) Найдите или установите систему, максимально похожую на систему, в которой возникли проблемы.

2) Выполните команду на этом сервере, чтобы вывести полный путь к каждому файлу и его разрешения. Например:

find / | while read F; do ls -lad ${F}; done | cut -f 1,9 -d " " | tee /tmp/log

3) Скопируйте вывод этого скрипта в поврежденную систему.

4) Передайте это в скрипт, который устанавливает эти разрешения. Игнорировать ошибки из-за несуществующих файлов. Например:

cat /tmp/log | while read F; chmod ${F}; done

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