«Chmod -R 777 /» на несколько секунд - что теперь?

2

На Centos 6.5 я случайно набрал

chmod -R 777 /

По электронной почте Ой. Я быстро отпустил CTRL + C, но не раньше, чем он начал работать на пару секунд.

Последствия? Ну уже

su root

не работает (хотя вход через SSH как root есть). Я не уверен, что еще могло быть затронуто.

Любые идеи, как я могу продолжить отсюда? Просто переустановите из резервной копии или я могу сделать что-нибудь умное?

Большое спасибо.


Изменить - то, на что я действительно надеюсь, это немного магии Баш.

  • найти файлы, установленные на 777 за последний час на сервере
  • установите для них значение разрешения, которое должно быть для стандартной установки Centos 6.5
rastaboym
источник
5
На самом деле нет способа отменить chmod. Если у вас есть резервные копии, было бы проще восстановить оттуда.
Мэтью Уильямс
возможный дубликат sudo chmod -R 777 /
EBGreen
Ну, я говорю, резервное копирование. Я должен был бы переустановить сервер, что всегда является проблемой. Я стремлюсь к тому, чтобы просто покинуть его и надеяться на лучший подход на данный момент ...
Растабойм
2
@EBGreen, OSX в Unix, а не в Linux. Они имеют сходство, но не одно и то же.
MaQleod
1
Этот вопрос не является дубликатом связанного вопроса, так как другие вопросы и их решения предназначены специально для OSX, поэтому не закрывайте этот пост.
Шехар,

Ответы:

1

Вы изменили не только права доступа к файлам, но и изменили каталоги и узлы устройств. (Согласно man-странице chmod, chmod никогда не изменяет разрешения символической ссылки, так что, по крайней мере, они безопасны.)

На CentOS 6.x можно найти пакет, который установил определенный файл с

$ rpm -q -f /bin/ls
coreutils-8.4-19.el6.x86_64

а затем найдите исходный режим файла с

$ rpm -q -l -v coreutils | grep /bin/ls
-rwxr-xr-x    1 root    root       109208 Jun 22  2012 /bin/ls

а затем сценарий все это вместе с findи chmodкоманд , но это не исправить все , и на самом деле может сделать еще хуже. Я бы избежал этого, если бы в этом не было крайней необходимости.

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

Крис Мендес
источник
0

Если вам нужно сохранить систему, я бы предложил:

  1. Найдите затронутые файлы. (Мой вариант chmod входит в каталог и изменяет все файлы, затем рекурсивно входит в каталоги.) Проверьте, что делает ваш chmod -> это позволяет вам проверить точный список файлов, на которые влияют - надеюсь, chmod не достиг ваших данных ( /homeили /srv).

  2. Установите для всех затронутых файлов значение r - r - r--, для всех файлов, которые выглядят исполняемыми - для r-xr-xr-x, для всех каталогов - для r-xr-xr-x, а для всех / dev / узлов - для другого запущенного linux. Система по вашему выбору выглядит так. (Это много работы!) (Примечание: системы GNU / Linux довольно хорошо работают в режиме только для чтения, но, возможно, некоторые файлы должны быть доступны для записи - если с этого момента сервер больше не запускается: неудача) (Make убедитесь, что файлы журналов доступны для записи.)

  3. Переустановите все пакеты (убедитесь, что файлы конфигурации будут сохранены)

  4. Тем не менее, система не одинакова и может иметь серьезные проблемы с безопасностью, производительностью и функциональностью.

Подсказка для рекурсии chmod:

user:/tmp/chmod$ chmod -v -R 777 .
Modus von „.“ als 0777 (rwxrwxrwx) erhalten
Modus von „./a“ als 0777 (rwxrwxrwx) erhalten
Modus von „./a/1“ als 0777 (rwxrwxrwx) erhalten
Modus von „./a/2“ als 0777 (rwxrwxrwx) erhalten
Modus von „./a/1a“ von 0755 (rwxr-xr-x) in 0777 (rwxrwxrwx) geändert
Modus von „./a/1a/g“ von 0644 (rw-r--r--) in 0777 (rwxrwxrwx) geändert
Modus von „./a/2b“ von 0755 (rwxr-xr-x) in 0777 (rwxrwxrwx) geändert
Modus von „./a/2b/h“ von 0644 (rw-r--r--) in 0777 (rwxrwxrwx) geändert
Modus von „./b“ als 0777 (rwxrwxrwx) erhalten
Modus von „./b/1“ als 0777 (rwxrwxrwx) erhalten
Modus von „./b/2“ als 0777 (rwxrwxrwx) erhalten
user:/tmp/chmod$ 
u_Ltd.
источник
0

Это может решить некоторые из ваших проблем:

find . -type f -perm 777 -exec chmod 644 {} \;
find . -type D -perm 777 -exec chmod 755 {} \;

для некоторых файлов / каталогов

Викелидис Костас
источник