Исправить разрешения сервера после случайного chmod [дубликат]

При попытке отладки почтового сервера я набрал:

chmod -R 777 /

вместо:

chmod -R 777 .

и глазурь на торте, из-за того, что я забыл, что изменил сценарий, который использую для входа в систему, чтобы что-то исправить, я сделал все это как root. У меня нет резервных копий большей части системы (я знаю плохой выбор).

В отличие от вопросов «Восстановление после chmod -R -777 /» и «Что делать после 'chmod -R 777 /'?» Я все еще вошел в систему как root, и не вся система была изменена, поэтому у меня есть некоторый контроль над системой. Я также ^ C d вне команды в течение одной секунды, чтобы минимизировать ущерб. С тех пор я физически отключил сервер от Интернета.

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

Я осознаю потенциальные риски потери файла, но предпочел бы восстановление, чтобы переустановить, несмотря на них.

это текущий результат ls -la / :

drwxrwxrwx  22 root root  4096 Sep  7  2016 .
drwxrwxrwx  22 root root  4096 Sep  7  2016 ..
drwxr-xr-x   2 root root  4096 May 18 07:55 bin
drwxr-xr-x   3 root root  4096 Sep 21 07:53 boot
drwxr-xr-x  19 root root  3180 Sep 11 20:54 dev
drwxrwxrwx  92 root root  4096 Aug 23 07:50 etc
drwxr-xr-x   4 root root  4096 May 23  2016 home
lrwxrwxrwx   1 root root    31 Feb 24  2016 initrd.img -> /boot/initrd.img-3.16.0-4-amd64
drwxrwxrwx  18 root root  4096 Feb 24  2016 lib
drwxr-xr-x   2 root root  4096 Jun 20 07:00 lib64
drwx------   2 root root 16384 May 19  2016 lost+found
drwxrwxrwx   2 root root  4096 May  5  2015 media
drwxr-xr-x   2 root root  4096 May  5  2015 mnt
drwxr-xr-x   3 root root  4096 May 28  2016 opt
dr-xr-xr-x 148 root root     0 Sep  3 21:55 proc
drwxrwxrwx  10 root root  4096 Aug 19 17:58 root
drwxr-xr-x  22 root root   800 Sep 21 17:09 run
drwxrwxrwx   3 root root  4096 Jun 20 07:00 sbin
drwxr-xr-x   4 root root  4096 Sep 20 23:18 sftp
dr-xr-xr-x  13 root root     0 Sep  3 21:55 sys
drwxrwxrwx   8 root root  4096 Sep 21 17:17 tmp
drwxrwxrwx  11 root root  4096 Feb 24  2016 usr
drwxr-xr-x  14 root root  4096 Jun 25 06:21 var
lrwxrwxrwx   1 root root    27 Feb 24  2016 vmlinuz -> boot/vmlinuz-3.16.0-4-amd64

только что заметил в панике, что я щелкнул по форуму ubuntu, а не по debian ... я знаю, что почтовый сервер починить нельзя.это было хакерское неаккуратное исправление, чтобы увидеть, что сломалось

iv теперь репостил это на правильном форуме

6
задан 21 September 2017 в 14:40

1 ответ

Фиксация Ошибки Разрешения

, Как восстановить разрешение корневого каталога принять значение по умолчанию?

Правило № 1: Если Вы не довольны командными строками, не выполняйте команду как корень.

Выполнение chmod -R 777 /, поскольку корень повредит Вашу систему.

Выполнение rm -rf /, поскольку корень приведет к аварии! .

, Если Вы имеете, работал chmod -R 777 / как корень, выполните эти шаги для восстановления его назад:

Шаг 1:

Копия следующий сценарий, вставьте, это на Вашей консоли для генерации fixpermission сценария

echo '
chmod -R 755 /bin /boot /dev /etc/ /home /lib /lib64 \
/media /mnt /opt /run /sbin /srv /usr /var

chmod -R 777 /initrd.img /vmlinuz
chmod -R 1777 /tmp
chmod -R 555 /sys
chmod -R 555 /proc
chmod -R 700 /root

' > fixpermission

chmod +x fixpermission

./fixpermission

Вышеупомянутое создаст сценарий, названный fixpermission, и выполнит его ./fixpermission если не уже вызванный.

Шаг 2:

Выполнение stat -c '%A %a %n' /* для показа надлежащего каталога и их разрешения, как восстановлено.

Пример: Ваша структура разрешения каталога должна выглядеть подобной следующему:

root@plab:~# stat -c '%A %a %n' /*
drwxr-xr-x 755 /bin
drwxr-xr-x 755 /boot
drwxr-xr-x 755 /dev
drwxr-xr-x 755 /etc
drwxr-xr-x 755 /home
lrwxrwxrwx 777 /initrd.img
lrwxrwxrwx 777 /initrd.img.old
drwxr-xr-x 755 /lib
drwxr-xr-x 755 /lib64
drwx------ 700 /lost+found
drwxr-xr-x 755 /media
drwxr-xr-x 755 /mnt
drwxr-xr-x 755 /opt
dr-xr-xr-x 555 /proc
drwx------ 700 /root
drwxr-xr-x 755 /run
drwxr-xr-x 755 /sbin
drwxr-xr-x 755 /srv
dr-xr-xr-x 555 /sys
drwxrwxrwt 1777 /tmp
drwxr-xr-x 755 /usr
drwxr-xr-x 755 /var
lrwxrwxrwx 777 /vmlinuz
lrwxrwxrwx 777 /vmlinuz.old

Шаг 3:

Перезагружают Вашу систему!

Hope это помогает.

9
ответ дан 23 November 2019 в 07:33

Другие вопросы по тегам:

Похожие вопросы: