Вернуть 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.
Если у вас есть полная резервная копия, вы можете получить разрешения оттуда.