sudo chmod -R 777 /


9
 sudo chmod -R 777 /

Я сделал это. Это была ошибка. Есть ли способ отменить это?

В основном это испортило больше вещей, чем я могу перечислить. У меня нет машины времени на моем Mac.


Серьезный вопрос, человек, есть ли способ отменить это.
Кейси Флинн

3
Разрешения 777 почти никогда не являются решением проблем с разрешениями. Это может помочь вам справиться с проблемой, но это редко хорошая идея, даже если она ограничена каталогом глубоко в вашей дисковой системе. Это катастрофа, когда она применяется ко всем файлам и каталогам в корневом каталоге, не в последнюю очередь потому, что она пытается удалить биты SUID из таких программ, как «sudo», которые в них нуждаются. Не делай этого снова! (Многие пользователи Unix могут потрогать вас историей об аналогичной ошибке; я не буду вас беспокоить, но резервные копии системы спасли день, и не я набрал команду, которая достигла цели rm -fr /.)
Джонатан Леффлер

2
Пусть это станет уроком для всех о том, почему мы sudoпродолжаем думать о том, прежде чем печатать, когда вы впервые его используете. ;-)
Скотт

Сделайте ls -lR / >listна здоровой системе (или попросите кого-нибудь еще для списка). Вы можете автоматизировать этот процесс, чтобы переустановить разрешения (если это Dirk Utility Repair не сработает).
ot--

Ответы:


9

Взгляните на функцию восстановления прав доступа к диску Disk Utility от Apple:

http://support.apple.com/kb/HT1452?viewlocale=en_US


1
Это не отменит ваши изменения, но должно исправить большинство проблем из-за неправильных настроек разрешений.
kylex

Это восстановит мою программу sudo?
Кейси Флинн

@Casey - В чем проблема с sudo? sudo просто позволяет запускать команду от имени пользователя root. то есть. обходит многие ограничения безопасности.
kylex

1
@kylex: он, вероятно, отказывается работать, так как / etc / suoers можно переписать во всем мире :) Хорошая мысль
sehe

4
Судо, вероятно, отказывается работать, потому что ему нужно установить бит масти, и, рекурсивно изменяя все в режим 777, OP удалил бит suid в sudo (и во всех других привилегированных программах). Без установленного бита suid sudo не может получить повышенные привилегии и, следовательно, не может предоставить вам доступ, отличный от того, который у вас уже есть. Если у Дисковой утилиты нет альтернативного механизма получения повышенных привилегий, Кейси, вероятно, придется организовать вход в систему как root.
Жаворонки

4

С http://support.apple.com/kb/HT2963 :

Использование утилиты восстановления прав

Большинство пользователей Mac OS X не имеют намеренно измененных привилегий и просто нуждаются в утилите для сброса системных привилегий до их правильных значений по умолчанию. Если у вас Mac OS X 10.2 и выше, эта утилита включена в операционную систему. Если у вас Mac OS X 10.1, вы можете скачать его. Для версий с 10.0 по 10.1.4 вы должны сначала выполнить обновление до версии 10.1.5.

Для Mac OS X 10.2 или более поздней версии откройте Дисковую утилиту (/ Applications / Utilities /). Выберите загрузочный том Mac OS X в столбце слева от окна «Дисковая утилита» и перейдите на вкладку «Первая помощь». Нажмите кнопку Восстановить права доступа к диску. Вы можете увидеть ошибочное сообщение.



0

Разрешения на восстановление включают файлы, которые были созданы установщиком OS X (например, / etc / sudoers), но не включают файлы, которые не были предварительно установлены или не созданы пакетами.

Вероятно, проще сделать резервную копию всего, выполнить чистую переустановку и выборочно восстановить файлы из резервной копии (или резервных копий). Вы можете восстановить 644/744 разрешения с помощью команды find:

find /Volumes/Second\ Backup -type f -exec chmod 644 {} \+
find /Volumes/Second\ Backup -type d -exec chmod 744 {} \+

Если вы не можете выполнить резервное копирование файлов, попробуйте запустить из раздела восстановления (или с установочного носителя версии 10.6 и более ранних) и клонировать основной диск OS X из Дисковой утилиты.


-1

Если есть какие-то инструменты для отмены разрешений, и люди предлагают это, вам лучше сначала воспользоваться этим, sudo chmod -R 777 / в противном случае вы можете сделать это, вернув все разрешения на более безопасный уровень, такой как

chmod -R 644

а затем измените разрешения до необходимого уровня, когда возникает конфликт.

-

Но это не очень хороший способ. Просто какой-то более безопасный подход, чтобы не испортить ваши файлы, прежде чем может случиться что-то худшее :(


2
chmod -R 644сделает все каталоги недоступными для поиска. Было бы трудно оправиться от этого.
Кит Томпсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.