Я недавно набрал команду
sudo chmod 777 -R /
после этого некоторые вещи, такие как
sudo -i
не работают нормально. Так что мне интересно, есть ли способ, которым я мог бы сбросить разрешения для папок в их исходное состояние?
ubuntu
permissions
chmod
Braiam
источник
источник
Ответы:
Это можно вернуться из этой грязной ситуации.
Я снова запустил такой же вопрос (какая-то ошибка в сценарии, который я писал) и решил ее, но вам нужно обратиться за помощью к эксперту. Будьте очень осторожны!
Во-первых, мою ситуацию было проще разрешить, потому что у меня была система с двойной загрузкой (Ubuntu и моя старая установка Fedora), но запуск ОС с CD / DVD или USB-ключа должен делать то же самое.
Сначала я смонтировал свои файловые системы следующим образом (не забудьте создать точки монтирования):
Затем я запустил следующую команду (моя проблема была только в нескольких - критических - каталогах), чтобы скопировать разрешения из запущенной системы в грязную (фактически, в моем случае я установил систему Ubuntu в Virtual Box под Fedora и получил там разрешения)
И тогда я запустил скрипт restoreperms.sh.
Я снова смог загрузиться на Ubuntu.
Содержимое restoreperms.sh будет примерно таким:
Я не тестировал его, но он должен работать и для владельцев, и для групп владельцев. Что-то вроде:
Конечно, вы должны позаботиться о том, чтобы UID и GID были одинаковыми в обеих системах, но для пользователей и групп, связанных с системой, это не должно быть проблемой.
Редактировать:
Кроме того, настройка владельца обнуляет флаги SGID и SUID , что вызывает странные проблемы (например, вы не сможете выполнить sudo, если у вас нет разрешения 4755). Вы должны и должны устанавливать права только ПОСЛЕ настройки владельцев. СОХРАНИТЕ полную информацию о правах доступа к файлу вместе с информацией о владельце.
Rk:
Теперь у меня есть эти команды в cronjob, которые выполняются каждый день (могут быть недели), чтобы сохранить эту информацию. Это облегчит решение в следующий раз, но, разумеется, так как у меня сейчас, это никогда не повторится. ;-) Что-то вроде этого:
0 12 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chmod %a %n" {} \; |/bin/bzip2 -c > /tmp/restore_chmod.$(/bin/date +%w).sh.bz2
0 13 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chown %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_chown.$(/bin/date +%w).sh.bz2
Правильная (комбинированная) команда больше похожа на:
Обратите внимание, что может потребоваться дополнительная осторожность для учета скобок в именах файлов (например, в локалях), и что chown может молча сбрасывать биты setuid и setgid, установленные chmod. В последнем случае, который сломает, скажем, / bin / su и / usr / bin / sudo, вам может понадобиться поменять местами приведенные выше инструкции exec.
источник
После восстановления sudo или выбора режима восстановления при загрузке
Можно восстановить целую систему, используя отсеки, которые проверяют целостность файлов и разрешения.
со страницы руководства:
или ограничен определенным путем, например
/usr
:или ограничено несколькими наборами путей, например:
/sbin /etc /var
источник
chmod a-x /bin/ping
иdebsums -c
не сообщал об этом файле.Всегда смотрите, что вы запускаете как sudo.
В этой ветке объясняется, что вы можете вручную установить некоторые разрешения, и скрипт помогает с этим, но все же это большая работа. Скорее следуйте советам в протекторе, чтобы сохранить установленные пакеты (маркировки) и переустановить ОС, а также применить маркировку сохраненных пакетов, чтобы вернуть ваши приложения.
источник
Насколько я знаю, только пакеты System V и RPM предлагают команду для восстановления прав доступа к файлам. В System V (Solaris) это pkgchk, с RPM это rpm --setperms.
К сожалению, похоже, что для пакетов Debian / Ubuntu такой команды не существует, но я могу ошибаться.
Но даже с помощью этих команд не является простой задачей вернуть вашу систему в нормальное состояние, и, восстановив ее, вы можете легко нанести новый вред вашей системе - если вы не будете осторожны.
Кроме того, что сказал Иосиф, ты не первый, и ты не будешь последним, кто введет такую команду. Но сама по себе идея изменить права доступа к файлам на 777 в системе Unix является ярким свидетельством того, что вы не очень опытны с такой системой. Лучшее, что вы можете сделать в этой ситуации, - это сделать резервную копию того, что вам понадобится снова (домашние каталоги, файлы конфигурации, почтовые файлы?), И попробовать новую установку.
И вы должны быть очень, очень осторожны, когда восстанавливаете свои - поврежденные - резервные файлы.
Удачи!
PS: мне просто интересно, какую проблему вы хотели решить?
источник
Вау, ты убил это. Он мертв! Попробуйте войти в систему и использовать компьютер в качестве пользователя root (поскольку вы его включили), а затем измените членство в группе пользователей root. Это может или не может работать, потому что я никогда не пробовал это раньше, но это стоит попробовать.
источник
Вы не можете отменить
chmod
операцию; по крайней мере, не в смысле отката к предыдущей настройке, к которой призывает эта ситуация. Возможно, вы можете отменитьchmod
операцию,chmod
переведя каждый файл и каталог обратно в исходный режим - но они не все одинаковые; Определение оригинальных режимов довольно сложно (как обсуждалось в других ответах).источник