Я случайно выполнил чмод 777 -R /

-1

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

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

DokTor153
источник
проверьте этот serverfault.com/questions/221447/…
jcbermu
3
И просто подытожив ответ на этот вопрос, сохраните ваши данные и переустановите ОС и ваши приложения.
EBGreen
1
Вот хорошее объяснение причиненного хаоса serverfault.com/questions/364677/why-is-chmod-r-777-destructive
jcbermu

Ответы:

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
Дэвид Шварц
источник