Смотрите также:
Почему «chmod -R 777 /» разрушителен?
Я изменил права доступа к файлам рекурсивно в корневой каталог /
, выполнив sudo chmod -R / 777
, и после того, что моя система не загружается (я получаю много «разрешения отказано» ошибки).
Пожалуйста помоги.
permissions
ubuntu-10.04
boot
Marcin
источник
источник
Ответы:
Вы смотрите на безнадежное дело. Сохраните необходимые данные и переустановите операционную систему.
источник
/etc
,/var/www
содержимое веб-сервера и базы данных. Возьмите другой жесткий диск, включите его в качестве основного и установите. Это сохраняет ваш другой диск в качестве резервной копии, пока вы не сможете перенести его.Я знаю, что dpkg хранит разрешения в базах данных, и я нашел следующий скрипт Google, который может помочь.
Редактировать: я на самом деле быстро взглянул на скрипт, и он выглядит так, как будто ему не хватает немного магии, которая переходит от PERMS к MODE, например, dpkg -c выдает, например, «-rw-r - r--», но вы хотите 0644, я сейчас на работе, поэтому я не уверен, что у меня есть время, чтобы сделать конвертацию в этот момент, но я могу вернуться позже, если никто не вмешался, чтобы добавить этот бит.
Существует скрипт здесь , который выглядит интересно
источник
Это можно вернуться из такой ситуации грязной , без переустановки системы. Что ж, точнее, запуск новой новой системы либо с USB-ключа, либо из Virutal Box (или около того), если у вас есть система с двойной загрузкой.
Я снова запустил такой же вопрос (какая-то ошибка в сценарии, который я писал) и решил ее, но вам нужно обратиться за помощью к эксперту. Будьте очень осторожны!
Во-первых, мою ситуацию было легче разрешить, потому что у меня была система с двойной загрузкой (Ubuntu и моя старая установка Fedora), но запуск системы для USB-ключа (или, возможно, CD / DVD) должен был сделать то же самое.
MPOINT = / монтирование / убунту
Сначала я смонтировал свои файловые системы следующим образом (не забудьте создать точки монтирования): mount / dev / ubuntu / root $ MPOINT mount / dev / ubuntu / home $ MPOINT / home
Затем я выполнил следующую команду (моя проблема была только в нескольких - критических - каталогах), чтобы скопировать разрешения из запущенной системы в грязную (фактически, в моем случае я установил систему Ubuntu в Virtual Box под Fedora и получил там разрешения)
найти / etc / usr / bin -exec stat --format "chmod% a $ {MPOINT}% n" {} \; > /tmp/restoreperms.sh
И тогда я запустил скрипт restoreperms.sh.
Я снова смог загрузиться на Ubuntu.
Содержимое restoreperms.sh будет примерно таким:
Я не тестировал его, но он должен работать и для владельцев, и для групп владельцев. Что-то вроде:
найти / etc / usr / bin -exec stat --format 'chown% U:% G $ {MPOINT}% n' {} \; > /tmp/restoreperms.sh^
Конечно, вы должны позаботиться о том, чтобы UID и GID были одинаковыми в обеих системах, но для пользователей и групп, связанных с системой, это не должно быть проблемой.
Rk:
Для этого важно синхронизировать установочный диск с версией, которую вы используете, или, по крайней мере, работать с текущей версией Ubuntu. Теперь у меня есть эти команды в cronjob, которые выполняются каждый день (могут быть недели), чтобы сохранить эту информацию. В следующий раз это облегчит решение, но, разумеется, поскольку у меня есть это сейчас, это никогда не повторится. ;-) Что-то вроде этого:
РЕДАКТИРОВАТЬ: для поддержки ссылок, объединенная команда:
/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {}
источник
Я изменил скрипт сверху, и он выглядит так:
источник
Согласитесь с blueben, просто переустановка может быть быстрее, чем анализ того, какой файл / каталог требует какого разрешения. Но если переустановка не вариант, вот идея:
find / | xargs stat -c 'chmod %a "'%n'"' > /tmp/chmod.sh
chmod.sh
на компьютер с неправильными разрешениямиchmod +x /tmp/chmod.sh && /bin/bash /tmp/chmod.sh
источник
ERRATUM к моему сообщению, опубликованному от имени пользователя user100740: для поддержки ссылок объединенная команда:
источник
Если вы все еще можете запустить
/usr/sbin/synaptic
, это часто исправимо.Сортируйте пакеты по статусу (установленные пакеты вверху), выберите все установленные пакеты, щелкните правой кнопкой мыши и выберите переустановить. Затем примените, который предложит
dpkg
повторно извлечь все файлы для этих пакетов. (Вы потеряете все локальные изменения (но не изменения файла конфигурации).)Это может не исправить все, хотя.
Другое дело, если вы зайдете
/var/cache
, вы можете позвонитьdpkg -x <package name> /
для каждого установленного пакета, а затем позвонитьdpkg --reconfigure -a
. Кроме того, если вы используете Ubuntu, вы можете выполнить обновление dist, которое часто исправляет множество ошибок (при условии, что вы еще не в последней версии). Обычно, когда я пытаюсь исправить ошибку, подобную этой, я пробую эти простые исправления, и если они не просто заставляют ее работать снова, то пришло время переустановить.источник
загрузиться с live CD. затем запустите shell, затем sudo -s. Затем chmod 777 / *, затем chmod 600 / etc / passwd. ядро будет паниковать, если инициализация завершится неудачно, что произойдет, если скрипты / lib / init не будут выполняться. загрузитесь в однопользовательском режиме для Lilo Linux 1 и запустите скрипт user102453 выше. Это заставляет систему загружаться в ответ. Все еще нужно запустить X.
источник
Установка разрешения / 755 у меня сработала.
Так что проверьте сначала с
Разрешения должны быть «drwxr-xr-x» (755).
источник