Как восстановить / etc / sudoers на OSX High Sierra

1906
user20342

Как я сюда попал

Я установил SSD-диск после резервного копирования моих данных. Я установил OSX Maverick (потому что мой ноутбук около 2014 года), а затем я начал копировать свои данные от пользователя-2 к пользователю-1 (потому что мой пользователь после установки ОС не совпадал с пользователем с тем же именем, которое сохранило данные в резервной копии данных).

Тогда я начал ремонтировать владение файлов, но я сделал что - то очень плохо: я побежал sudo chmod -R user-1:staffв /etcи изменил собственность /etc/sudoers. И если владелец файла поврежден, вы не можете изменить его обратно.

Что я пробовал

Я сделал однопользовательский режим загрузки и обнаружил, что файловая система смонтирована только для чтения.

Я загрузился в режиме восстановления и обнаружил, что OSX больше не предлагает «Восстановление прав доступа к диску» в Дисковой утилите .

Я загрузился в режиме восстановления и обнаружил, что не могу восстановить один файл из резервной копии Time Machine, потому что режим восстановления позволяет проложить только вашу машину со всеми данными Time Machine.

Я пытался выполнить обычную загрузку, но это занимает 30 минут, и хотя индикатор выполнения показывает, что он завершен, ОС больше не запускается.

Вопрос

Итак, как мне

  1. получить приглашение пользователя в доступной для записи файловой системе, чтобы я мог установить владельца /etc/sudoersили
  2. добраться до Finder, чтобы восстановить право собственности

и, возможно, сможет снова загрузить мой ноутбук?

К сожалению, я не могу войти в систему как root с этим эксплойтом, потому что я не могу получить диалоговое окно для входа в систему.


Позже 2018-01-21

Я столкнулся с этим вопросом и смог mount -uw / && chmod 0 /etc/sudoersуспешно, но я все еще не могу загрузиться. Это может быть что-то еще, вызванное chown -R.

Еще позже: когда я загружаюсь в подробном режиме (Command-V), я получаю бесконечную прокрутку сообщения об ошибке «Сбой процесса X: opendirectoryd. Создается слишком много трупов». Это выглядит смертельным. Возможно, мне придется переустановить ОС и мою резервную копию.

0

2 ответа на вопрос

1
akim

Выход есть (спасибо https://astrails.com/blog/2009/09/29/how-to-fix-a-hosed-etc-sudoers-file-on-mac-osx ):

  • войти в систему с учетной записью с правами администратора
  • в терминале запустите, open etc/чтобы увидеть этот каталог из Finder
  • выберите файл sudoers
  • получить информацию ( Cmd+ I)
  • нажмите, +чтобы добавить разрешения
  • предоставить вашей учетной записи права на чтение и запись
  • vi /etc/sudoers и исправь свой беспорядок
  • :w! сохранить (как это все еще "только для чтения")
  • затем запустите, sudo visudoчтобы восстановить правильные права на этот файл.
0
Gordon Davisson

Вы должны вернуть всю иерархию / etc к ее правильному владельцу. В основном это root: wheel, но есть несколько исключений. Вы можете исправить это в однопользовательском режиме после перемонтирования корневого тома для доступа на запись:

mount -uw / chown -R root:wheel /etc chown -R root:_lp /etc/cups chown _lp:admin /etc/cups/certs chown root:admin /etc/cups/certs/* chown root:operator /etc/dumpdates # It's ok if this file doesn't exist 

Обратите внимание, что порядок выполнения важен, так как более поздние chownпереопределяют более ранние.

Я вроде пошел по этому пути. Я посмотрел на Mac, который работал правильно, и на `grep -v wheel ', увидел только каталог` cups`, увидел, что на моем ноутбуке нет `cups', и просто сделал` chmod -R 0 / etc`. Нет радости Так что теперь я выкладываю и переустанавливаю свою резервную копию Time Machine. Надеюсь на лучшее. user20342 6 лет назад 0
На самом деле, переустановка на месте из Recovery также должна работать и сохранять ваши пользовательские данные (хотя это может быть не выгодно в данный момент). Кстати, вы пропустили исправление группы вместе с владельцем. Gordon Davisson 6 лет назад 1