Исправление последствий “chmod 777 /”

273
31 июля 2017, 12:25

В ubuntu 14 4 выполнил chmod 777 /, после чего перестали выполняться su и sudo -s.

Как это исправить?

$ su 
operation not permitted
$ sudo -s
/etc/sudoers is world writable
no valid sudoers souces found, quitting
unable to initialize policy plugin
Answer 1

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

поведение двух упомянутых программ — это лишь самая верхушка «айсберга», остальные последствия будут обнаруживаться позже, в самые, вероятно, неожиданные моменты. из основных «результатов» можно отметить хотя бы пару: во-первых, ваша система сейчас представляет собой «дырявое решето» (с точки зрения безопасности и защищённости системы), во-вторых, некоторые «демоны» могут либо вообще перестать работать (после перезагрузки), либо работать некорректно.

я лично (считая себя далеко не новичком) исправлять последствия такого «вандализма» даже бы не взялся — это адский кропотливый труд.

Answer 2

Можно ещё поставить систему на соседней виртуалке и сделать автоматическое приведение прав к одному знаменателю простым скриптом.

На виртуалке:

find / |xargs stat -c "chmod %a %n" > /rights-1.txt # Создаёт файл где сохранены права и названия с путем 
find / |xargs stat -c "chown %U:%G %n" > /rights-2.txt # Создаёт файл с принадлежностями и путём

Перенести эти файлы на основную систему и просто выполнить:

bash </rights-1.txt 
bash </rights-2.txt
Answer 3

Из-под root

chmod 440 /etc/sudoers

Answer 4

Указанная команда не могла нанести такого вреда, по-видимому был ещё ключ -R.

Можно переустановить все установленные пакеты, при этом восстановятся и права, кроме файлов и каталогов не относящихся к пакетам. Для систем с дебиановским менеджером пакетов:

# apt-get --reinstall install `dpkg --get-selections | grep install | grep -v deinstall | cut -f1`

Если при этом будет невозможно переустановить какие-то пакеты, их можно пропустить добавив имена в фильтр:

# apt-get --reinstall install `dpkg --get-selections | grep install | grep -v deinstall | cut -f1 | egrep -v '(package1|package2)'`

Источник: http://hyperlogos.org/page/Restoring-Permissions-Debian-System

Если в систему нельзя войти как root, придётся загрузиться с флэшки. и сделать chroot на раздел с испорченной системой.

READ ALSO
Не могу изучить темы InputStream и OutputStream

Не могу изучить темы InputStream и OutputStream

Добрый деньИзучаю Java,и вот начал изучать java i/o

333
Есть ли что вроде расширенного ImageView?

Есть ли что вроде расширенного ImageView?

Кому-нибудь известен расширенный на возможности элемент подобный ImageViewЧтобы там уже были нужные обработчики вроде двойного нажатия, или...

256
Не запускается Tomcat, помогите

Не запускается Tomcat, помогите

Сделал все по инструкции, установил все переменные среды, но он все равно не запускаетсяВот что выводится в cmd при попытке запуска:

342