Вернуть chmod 777 / -R

Выполняя команду, я допустил ошибку и выполнил (Ubuntu 10)

sudo chmod 777 / -R # хорошо, вы можете смеяться

теперь все мои файловые системы имеют 777 разрешений, очевидно, я не знаю, где находятся разрешения для каждой папки и файла на моем диске емкостью 1 ТБ:D

в любом случае я могу это вернуть?

Заранее спасибо!!!

2 ответа

Вау... это довольно плохо... Лучшее, что вы можете сделать сейчас, - это создать резервную копию ваших личных данных и переустановить вашу систему.

Поскольку это, вероятно, не то, что вы хотели услышать, вторая лучшая (и, вероятно, значительно более болезненная) вещь, которую нужно сделать, это что-то вроде:

for package in `dpkg -l | awk '{print $2}'`; do
    apt-get install --reinstall $package
done

Обратите внимание, что это исправление является чисто теоретическим (я никогда не пробовал), но оно будет переустанавливать каждый пакет в вашей системе (потому что, насколько я могу судить, apt а также dpkg не имеет функции "исправить разрешения", как RPM). Переустановка должна исправить права на все файлы в пакетах.

Это "исправление" может испортить другие вещи, и, вероятно, у вас все еще будут файлы 777, которые не входят ни в один из пакетов, поэтому вам следует findвсе вещи, которые в режиме 777 и убедитесь, что список выглядит вменяемым.

Попробуйте следующую команду

rpm --setperms $(rpm -qa)

Это сбросит все разрешения к значениям по умолчанию, хранящимся в базе данных rpm.

Или, если вы хотите перейти от пакета к пакету и получить еще вывод, попробуйте:

for p in $(rpm -qa) ; do echo "$p" ; rpm --setperms $p ; done

Это вернет только файлы, установленные с rpm, но не файлы, созданные вами вручную, или в вашем /home, или установленные другим способом, отличным от пакета rpm.

Если у вас есть полная резервная копия, вы можете получить разрешения оттуда.

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